- <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下的情況,還未測試。





