我知道有很多線程在談論它,但是我暴露了一個在他們的幫助下我無法解決的情況。我希望我的問題,如果將來解決了,我可以幫助更多處于我這種情況的人。我正在嘗試在Tomcat中進行一場戰爭的熱部署,我發現自己有以下四種情況:情況1從項目文件夾執行的部署命令:mvn clean install org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy -P PROFILE_ONE,PROFILE_TWO -Dmaven.skip.test=true -DskipTests=true -Dmaven.javadoc.skip=true -Dsource.skip=true -Dproject.build.sourceEncoding=UTF-8 -Dcobertura.skip=true -Dmaven.skip.test=true -DskipTests=true -Dmaven.javadoc.skip=true -Dsource.skip=true -Dproject.reporting.outputEncoding=UTF-8 -Dmaven.tomcat.path=/MY_PATH -Dmaven.tomcat.url=http://localhost:8081/manager/text -Dmaven.tomcat.server=TomcatServer -Dtomcat.password=TOMCAT_USER -Dtomcat.username=TOMCAT_PASSWORDAND apache-tomcat-7.0.91\conf\context.xml 具有以下屬性:<Context antiResourceLocking="true" antiJARLocking="true">案例 1 結果部署似乎工作正常,但當我進入應用程序時出現以下錯誤:找不到此頁面 (localhost) 未找到地址http://localhost:8081/MY_PATH/#/PATH 的網頁。HTTP 錯誤 404案例二從項目文件夾和 apache-tomcat-7.0.91\conf\context.xml 執行的案例 1 的相同命令沒有防鎖定屬性:<Context>案例2結果部署和應用程序工作正常,但是當我嘗試重新部署時,使用相同的命令并添加屬性-Dmaven.tomcat.update=true無法正常工作,因為有幾個 jars 被阻止并且 tomcat 無法刪除它們。(這就是為什么在其他情況下我添加防鎖屬性的原因)案例3從項目文件夾和 apache-tomcat-7.0.91\conf\context.xml 執行的案例 1 的相同命令具有以下屬性:<Context antiJARLocking="true">案例3結果與情況 2 的結果相同。案例四從項目文件夾和 apache-tomcat-7.0.91\conf\context.xml 執行的案例 1 的相同命令具有以下屬性:<Context antiResourceLocking="true">案例 4 結果等于情況1的結果。案件結束如您所見,我的目標是進行第一次部署,然后重新部署相同的應用程序(更改項目文件夾)。我找到的所有信息都討論了防鎖定屬性,但正如我上面所說,當我將它們放在 context.xml 中時,應用程序似乎不起作用。需要說明的是,由于項目需要,我無法更改戰爭的名稱。編輯 1案例5我也嘗試過使用以下命令:和 apache-tomcat-7.0.91\conf\context.xml 具有以下屬性:<Context antiResourceLocking="true">案例 5 結果 KO等于情況1的結果。為什么antiResourceLocking="true"會導致結果 1 錯誤?
1 回答

嚕嚕噠
TA貢獻1784條經驗 獲得超7個贊
根據Tomcat ,您不應該同時使用antiResourceLocking
和antiJARLocking
功能:
antiJARLocking 是 antiResourceLocking 的一個子集,因此,為了防止重復工作和可能出現的問題,在任何時候只應將這些屬性中的一個設置為 true。
還有關于使用antiResourceLocking 的具體警告
請注意,將此設置為 true 會產生一些副作用,包括在正在運行的服務器中禁用 JSP 重新加載:請參閱 Bugzilla 37668。
請注意,在主機的 appBase(默認為 webapps 目錄)之外的應用程序中將此標志設置為 true 將導致應用程序在 Tomcat 關閉時被刪除。您可能不想這樣做,所以在為它的主機在 appBase 之外的 webapp 上設置 antiResourceLocking=true 之前要三思。
添加回答
舉報
0/150
提交
取消