Jetty 使用 以及HTML 和Js代码无法保存问题解决

   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,然后 需要进行如下配置:

Jetty 使用 以及HTML 和Js代码无法保存问题解决_第1张图片

 

点击run, 系统会run jetty,并启动web 工程。无需再使用tomcat。因为tomcat 和Jetty一样都可以作为servelt 容器使用,所以在这里jetty 替代了tomcat。

 

但是接下来遇到一个问题。在开发中经常要修改html 和js代码,发现只要被浏览器访问过的html 或者是js,都会被锁住,修改之后无法保存,无论是在Eclipse里面保存还是在外部都无法保存。

Jetty 使用 以及HTML 和Js代码无法保存问题解决_第2张图片

后来在网上发现原因: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

 

 

 

你可能感兴趣的:(eclipse,html,maven,tomcat,servlet,jar)