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

配置
<webAppConfig>
<contextPath>/</contextPath>
<defaultsDescriptor>src/main/resources/webdefault.xml</defaultsDescriptor>
</webAppConfig>


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:wayfoon@163.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值