主要原因为tomcat server.xml 配置问题
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false"> <Context docBase="/logstat" path="" reloadable="true" source="org.eclipse.jst.jee.server:logstat"/>
在
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
中会自动查询webapps中的项目,自动发布,而在
<Context docBase="/logstat" path="" reloadable="true" source="org.eclipse.jst.jee.server:logstat"/>
中再次定义了项目加载路径,会造成项目再次加载,从而导致项目初始化两次,如果里面理由quartz定时任务,也自然会执行两次了。
docBase:项目路径
path:项目发布后的访问路径,设为空主要为了访问时候不需要加项目名,使用域名直接访问。
解决方法:
1. autodeploy属性值设置为false,如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用,设成false就不会。
2.增加deployOnStartup="false",表示Tomcat服务器启动时, 不会自动发布appBase目录下所有的Web应用。这样的话,在tomcat启动时,不会自动发布appBase下的应用,启动后也不会自动发步appBase下的应用。