Tomcat二次部署導致的報錯error deploying web application directory java.lang.ThreadDeath

error deploying web application directory

java.lang.ThreadDeath

java.lang.ThreadDeath
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1229)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1189)
原因分析:

因爲要模擬直接通過ip地址來訪問項目。所以我在tomcat的server.xml裏面配置了

<Context path="" docBase="test" reloadable="false"  />

但是在項目運行過程中。項目被部署了2次。就相同於tomcat裏面同時有2個相同的項目在運行。很容易出現併發重複操作問題。。後來才知道,tomcat在啓動時自動加載webapps裏面的項目。部署了一次。然後加載context的時候又部署了一次。後來查下資料修改配置
 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="false"
            xmlValidation="false" xmlNamespaceAware="false" deployOnStartup="false">

其中deployOnStartup表明啓動時是否自動部署項目。autoDeploy是表明在運行過程中新增項目是否自動部署。

最後把tomcat目錄中的work文件夾中自動部署的內容清空,就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章