tomcat7的虚拟路径映射到temp目录的解决方法

   项目中,有个生成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,就不会发生这种情况下。

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

猜你喜欢

转载自cyc360.iteye.com/blog/2200721