tomcat啓動項目資源初始化兩遍問題記錄

<Host name="localhost" autoDeploy="false" unpackWARs="false" 
xmlNamespaceAware="false" xmlValidation="false">
        <Context docBase="${catalina.home}/projects/yzweb"  path="" reloadable="false" />
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
        prefix="bs_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
</Host>

當Tomcat service.xml中Host配置了appBase,同時Context中也配置了docBase的話,Tomcat就會又從新加載一次引用。致使項目被從新加載兩次.web

解決辦法:apache

若是不想重複加載,那麼appBase 與 docBase不能同時存在。app

若是直接去掉Context中的docBase,並且appBase下又沒有指定ROOT目錄,那麼Tomcat會報錯找不到項目路徑,須要指定Context中的path,那麼問題又來了。spa

若是指定Context中path,那麼用戶訪問路徑中就要加入path才能訪問,不然404.code

1,當Tomcat只運行單個app時,咱們配置Host的appBase採用ROOT默認路徑方式,不須要配置Context,若是你必定要加,那麼請去掉docBase,加上path,訪問時要記得加上path路徑xml

2,當Tomcat中須要配置多個app的時,咱們就不在Host中配置appBase,而採用單個Context中單獨配置docBaseio

相關文章
相關標籤/搜索