Jetty锁定文件的问题

本文提供了一种方法来解决Jetty在Windows系统上部署文件被锁定的问题,通过修改配置文件使文件在运行期间能够动态生成或改动。解决方案包括修改webdefault.xml文件中的useFileMappedBuffer参数为false,或在web.xml中添加相应的配置片段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[转]http://blog.youkuaiyun.com/bluishglc/article/details/5819032

Jetty锁定文件的问题


在windows系统上,jetty默认在运行时会锁定部署的文件。这对于需要在程序运行期间动态生成或改动某些文件就变得不能执行!对于 这一点,Jetty的官网上专门有文章进行了解释:http://docs.codehaus.org/display/JETTY /Files+locked+on+Windows

如果突破这个限制,只需要改动一个jetty的配制文件即可,方法是:

在jetty的jar包中找到org/mortbay/jetty/webapp/webdefault.xml,搜索useFileMappedBuffer:

 

[xhtml] view plain copy
  1. <init-param>  
  2.   <param-name>useFileMappedBuffer</param-name>  
  3.   <param-value>true</param-value> <!-- change to false -->  
  4. </init-param>  

 

将param-value从true改为false即可。可以直接修改jar包内的这个文件,但是修改发行包毕竟不好,可以将此文件复制一份,在启动Jetty时用自己的这个webdefault.xml覆盖Jetty的设置即可。加上:

WebAppContext webapp = new WebAppContext();

webapp.setDefaultsDescriptor( "./webdefault.xml" );



Solution 2
(This solution was provided by Sasa Skevin.)
Add this configuration snippet to any web.xml :
<servlet>
    <!-- Override init parameter to avoid nasty -->
    <!-- file locking issue on windows.         -->
    <servlet-name>default</servlet-name>
    <init-param>
        <param-name>useFileMappedBuffer</param-name>
        <param-value>false</param-value>
    </init-param>
</servlet>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值