zl程序教程

您现在的位置是:首页 >  IT要闻

当前栏目

关于Jetty锁定静态文件的问题解决办法

2023-02-18 15:31:15 时间

Jetty是一个优秀的Web服务器,最大的特点是可嵌入应用程序,因此作为调试服务器非常方便,就像跟踪普通的main()方法一样可以在Eclipse中直接调试Web应用而无需远程连接。但是使用Jetty发现一个问题,即Windows上启动后Jetty会锁定已访问的静态文件,如HTML,CSS等,这给页面设计带来了不便。

其实Jetty官方站点对此问题已有回答,锁定文件据说是为了提高性能,但我觉得缓存也不一定需要长时间锁定文件:

其实可以修改Jetty默认的配置文件,在jetty-6.1.5.jar中找到org/mortbay/jetty/webapp/webdefault.xml,搜索useFileMappedBuffer:

<init-param>
    <param-name>useFileMappedBuffer</param-name>
    <param-value>true</param-value>
</init-param>

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

WebAppContext webapp = new WebAppContext();
webapp.setDefaultsDescriptor("./webdefault.xml");

重新启动后问题解决。