欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

tomcat7的虚拟路径映射到temp目录的解决方法 静态htmltomcat配置热部署

程序员文章站 2024-02-23 18:44:28
...

   项目中,有个生成html静态文件的功能,生成的目录是在tomcat7的/webapps/new-ec/announcement目录下,例如/webapps/new-ec/announcement/A001.html.但是,部署到开发服务器上后(CentOS 6.6)后,运行生成Html静态文件的功能,文件是创建到目录下了,但是使用虚拟目录无法访问,例如http://host/announcement/A001.html报404的错误。经过排查,发现改变context.xml文件的配置项,可以解决该问题。

   首先,找到tomcat7/conf/context.xml文件并打开,定位到<Context>的节点,将antiResourceLocking属性的值改为false,如下:

<Context antiJARLocking="true" antiResourceLocking="false" reloadable="true">

 就可以解决了

   按照我的理解,reloadableb=“true"表示的是热部署,即WEB-INF/lib和classes下有改变时,会自动加载而不需要重启服务。

antiJARLocking和antiResourceLocking属性是热部署需要配置的参数,如果antiJARLocking为false,tomcat会锁住jar包,导致无法自动更新,antiResourceLocking为true的道理一样,会把webapp在temp下生成副本,然后会到这个副本下去找资源,而我的程序是将html资源生成在webapps/new-ec/announcement下,所以找不到。这里把antiResourceLocking设置为false,就不会发生这种情况下。

  如果理解有误,还请大家指正。