- <Host name="localhost" appBase=""
- unpackWARs="true" autoDeploy="true"
- xmlValidation="false" xmlNamespaceAware="false">
- <Context docBase="/usr/local/apache-tomcat-6.0.29/webapps/semwinner" path="" reloadable="true"></Context>
- <Context docBase="/usr/local/apache-tomcat-6.0.29/webapps/emarboxmanager" path="/admin" reloadable="true"></Context>
- </Host>
把appBase设置为空即可!
去除了appBase="webapps"中的webapps变成了appBase="",因为web应用程序都是放在webapps这个目录下的,如果 不把“webapps“去掉,这里会调用一次quartz的任务调度,在接下来的“<Context path”中又会调用一次quartz的任务调度,所以就重复了2次
本人这个问题最后解决发现,的确是由 web应用程序默认都是放在webapps这个目录下的,如果不把“webapps“去掉,这里会调用一次quartz的任务调度,在接下来的“<Context path”中又会调用一次quartz的任务调度 这个原因导致。
而且本人刚开始执行3次,tomcat的webapp下面XXX.WAR包解压之后,war包没有删除,相当webapp目录下有 XXX 和XXX.war 所以XXX和XXX.war各执行一次,当删除XXX.war时,就只执行了2次,分别是 tomcat的server.xml中appBase和Context docBase,再删除
<Context docBase= 就只执行一次了。
以上本人验证成功!
如果webapp下面有多个不同的war包,那么把server.xml中appBase 的内容去掉,应该也是可以。这点没试过,待验证!
https://blog.csdn.net/jiang117/article/details/43077275
我开始以为眼花了,tomcat启动的时候,
. ____ _ __ _ _
/\ / ___'_ __ _ _(_)_ __ __ _
( ( )\___ | '_ | '_| | '_ / _` |
\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.0.2.RELEASE)
出现了两次,然后日志中有报错:
Unable to register MBean [HikariDataSource (HikariPool-2)] with key 'dataSource ...
最终确认springboot被加载了两次。
原因一:
war包发布,可能没有排除内置tomcat,先确认exclusions
原因二:
tomcat的server.xml配置有问题
如果<Context>节点里配置了应用全路径,那么<host>节点里的appBase要置空,否则就是这出问题,host和context分别加载一次。
待测: 如果有两个springboot应用放在tomcat下的情况,还未测试。