Tomcat一般用于部署JavaWeb项目。
Linux操作系统中,在tomcat中部署项目时,一般只需要把项目war包:demo.war放到webapps下,然后启动tomcat即可。这时项目的访问路径是:http://serverpath/demo,但实际上我需要http://serverpath就能访问到项目。 于是我修改了配置文件tomcat/conf/server.xml
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> 添加了`<Context/>元素`,修改为: <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="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="demo" debug="0" reloadable="true"/> </Host>这样我就可以以http://serverpath访问demo项目。
问题:但这样会导致项目启动两次,由于demo项目中有定时任务,于是就会启动两个定时任务。这显然不是我想要,于是综合网上的资料,有如下解决方案。
上面的解决办法会导致我配置的log4j无法打印日志文件到logs目录。 我的配置是:
<properties> <property name="LOG_HOME" value="../logs"/> </properties> 改为绝对路径即可: <properties> <property name="LOG_HOME" value="/opt/tomcat/logs"/> </properties>以上虽能达到我想要的结果,但相当不灵活,而且无法自动解压包,需要手动解压。