Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的 API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供 网络和web连接。
现在最新Jetty的版本是7.0;完全支持Eclipse。更多的信息请查看 http://hi.baidu.com/dfdkfdeijf/blog/item/cb46ed1ded0c9f0f8618bfab.html;
项目刚采用Maven 管理,和以前的开发调试环境大有不同。最痛苦的就是 调试 HTML 和js代码既然要重新打包发布。最终解决方法是采用 Jetty。
在Maven 下面使用Jetty非常简单,首先在Maven中引用Jetty,然后 需要进行如下配置:
点击run, 系统会run jetty,并启动web 工程。无需再使用tomcat。因为tomcat 和Jetty一样都可以作为servelt 容器使用,所以在这里jetty 替代了tomcat。
但是接下来遇到一个问题。在开发中经常要修改html 和js代码,发现只要被浏览器访问过的html 或者是js,都会被锁住,修改之后无法保存,无论是在Eclipse里面保存还是在外部都无法保存。
后来在网上发现原因:jetty 缓存了静态的html,js 和css等,不能被修改,但是JSP文件是可以修改的。
解决方法是 修改jetty jar 里面的 webdefault.xml 的useFileMappedBuffer为false
<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>false</param-value> 默认是true
</init-param>
接下来是要找到 webdefault.xml :
在6.0和之前的版本,所有的jetty 的class 是在一个jar里面。
在7.0的版本里面,jetty 拆成很多jar包了,而这个xml文件位于 jetty-webapp.jar里面。
用rar工具打开jar,在org/eclipse/jetty/webapp下面 发现webdefault.xml 。
在我本机:这个jar包的 存在于
C:/Documents and Settings/xxxx/.m2/repository/org/eclipse/jetty/jetty-webapp/7.1.4.v20100610 目录下面;
具体名称是jetty-webapp-7.1.4.v20100610.jar 修改其中的webdefault.xml 的useFileMappedBuffer为false,
重新jetty 启动web,成功,可以正常修改保存html和js
Sunny
MSN:[email protected]
2011-06-01