高峰之巅 发表于 2017-2-2 07:12:46

TOMCAT下Context重复加载的解决方法(转载)

解决Tomcat下Context重复启动(转)
配置了个定时抓取任务,结果总是抓取三次
从Tomcat的log上看到该任务所在的Context有三次启动的过程,计划任务也被创建了三次

问题原来出在Host的appBase设置上,原来的设置是这样的

<Host name="www.xxx.com" appBase="/usr/local/projects/xxx/"
   unpackWARs="false" autoDeploy="true"
   xmlValidation="false" xmlNamespaceAware="false">
   <Context docBase="web" path="" reloadable="true" workDir="work">
   <!-- Others -->
   </Context>
</Host>

<Host name="admin.xxx.com" appBase="/usr/local/projects/xxx/"
   unpackWARs="false" autoDeploy="true"
   xmlValidation="false" xmlNamespaceAware="false">
   <Context docBase="admin" path="" reloadable="true" workDir="work">
   <!-- Others -->
   </Context>
</Host>
改成不设置appBase,只对指定的Context设置docBase就ok了

<Host name="www.xxx.com" appBase=""
   unpackWARs="false" autoDeploy="true"
   xmlValidation="false" xmlNamespaceAware="false">
   <Context docBase="/usr/local/projects/xxx/web" path="" reloadable="true" workDir="work">
   <!-- Others -->
   </Context>
</Host>

<Host name="admin.xxx.com" appBase=""
   unpackWARs="false" autoDeploy="true"
   xmlValidation="false" xmlNamespaceAware="false">
   <Context docBase="/usr/local/projects/xxx/admin" path="" reloadable="true" workDir="work">
   <!-- Others -->
   </Context>


为什么不设置appBase就OK来呢?

因为设置了appBase就会自动去加载底下所有的项目
页: [1]
查看完整版本: TOMCAT下Context重复加载的解决方法(转载)