tomcat quartz 被触发两次

主要原因为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下的应用。

posted @ 2014-10-28 17:00  黑面馒头  阅读(782)  评论(0编辑  收藏  举报