admin管理员组

文章数量:1660067

企业通过Jenkins远程部署tomcat ,tomcat在windows操作系统下,tomcat开启自动部署,在删除旧文件时发生资源被锁定导致服务启动失败。网上查阅一些资料说是在tomcat context.xml文件中设置antiResourceLocking为true。这个属性设置之后服务正常启动但又遇到了另一问题,就是如果应用的antiResourceLocking属性设置为true,就将应用的doc base移到临时目录下,让Tomca不会占用webapps下的文件。Tomcat里java.io.tmpdir默认指向Tomcat的temp目录导致访问资源时出现404的问题。这一问题经过公司大佬给我讲解恍然大悟,因为tomcat 下的context文件是默认是针对tomcat所有的webapp应用如果设置antiResourceLocking为true 所有的webapp都会进入临时文件目录之后上传的资源文件都访问不到原因是上传的资源都在webapp目录下临时目录是没有的重启tomcat后才会把资源加载到临时目录。怎么解决问题如下

1,如果你的资源访问路径是 https://www.xxx/cmd  这个cmd就是你的访问路径 在

tomcat conf\Catalina\localhost目录下创建一个 cmd.xml

2,重写Context配置 例如<Context antiResourceLocking="false" path="/cmd" docBase="本地资源真实路径">
</Context>   antiResourceLocking 设置为false之后上传的资源文件就能访问到了 (默认的context antiResourceLocking还是要设置为true)到此热部署旧文件资源被锁定这个问题就解决了

文笔不咋地将就看

本文标签: 文件资源WindowsTomcat