登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> SoftHub关联区 >> 主题: [jsp/服务器]Jetty 在 windows 下无法热更新 热部署 无法删除文件的解决办法     [回主站]     [分站链接]
[jsp/服务器]Jetty 在 windows 下无法热更新 热部署 无法删除文件的解决办法
clq
浏览(247) - 2022-08-10 16:14:48 发表 编辑

关键字:

[jsp/服务器]Jetty 在 windows 下无法热更新 热部署 无法删除文件的解决办法

修改 etc/webdefault.xml 中的 useFileMappedBuffer 为 false 就可以了。

--------------------------------------------------------
https://www.cnblogs.com/allforone/p/3990373.html

 jetty java文件无法删除 java文件占用 delete无效 运行时锁定静态资源的解决方法
    前几天jetty下发现java无法删除文件,文件操作后一直被jvm占用,无奈换了tomcat问题消失。
    今天又想起来,尝试网上的解决方法,经本人试验,直接修改配置文件有时不能生效,具体原因不清楚,建议使用直接修改web.xml文件
    下文中的红色部分

   文件被锁定是由于在使用windows系统时,jetty默认在内存中映射了这些文件,而windows会锁定内存映射的文件。解决的办法就是修改jetty的配置,让其在启动server时将useFileMappedBuffer标志位设置为false。

  设置方法有两种,一种是修改webdefault.xml文件中的useFileMappdBuffer标志位。webdefault.xml文件是jetty启动服务的配置文件,其先于项目中的WEB-INF/web.xml文件被加载。 jetty包中默认有这个文件,可以将其提取出来,保存在项目根目录下,并修改useFileMappedBuffer节点。

    

<param-name>useFileMappedBuffer</param-name>
<param-value>false</param-value>

  然后在build.gradle加入对此文件的引用。


    

[jettyRun, jettyRunWar,jettyStop]*.with {
  webDefaultXml = file("${rootDir}/webdefault.xml")
}

  第二种方法是修改项目中的WEB-INF/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>

标签: java文件删除失败, java文件占用, jetty占用文件, java无法删除, useFileMappedBuffer



总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1