软件说明:
1) jdk版本:1.7.0_75
2) tomcat版本:7.0.42
部署的问题:
1) 直接将war包丢到tomcat的webapps文件夹下,并修改conf/server.xml文件:
<Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="true" deployOnStartup="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <Context path="" docBase="test.war" reloadable="false" /> </Host>
这是配置了自动部署,这种配置会出现war包被部署两次的情况,解决方案有以下几种。
第一种解决方案:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false" deployOnStartup="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <Context path="" docBase="/home/wy/tomcat-7.0.42-1/myWebapps/test.war" reloadable="false" /> </Host>
发布的项目文件不是在tomcat目录范围之内,而且此war包不会自动解压,如果以后有小范围的修改就不好修改了。
第二种解决方案:
<Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="true" deployOnStartup="true"
deployIgnore="test.war"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <Context path="" docBase="test.war" reloadable="false" /> </Host>
发布的项目文件不会被自动解压缩,缺点如第一种解决方案。
第三种解决方案:
<Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="true" deployOnStartup="true" deployIgnore="test"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/> <Context path="" docBase="test" reloadable="false"/> </Host>
此种方案是将已经解压过的war包放到webapps目录下进行发布,好像不被怎么常用。
这个问题,我还在持续关注,有想法的大家可以交流一下。