我知道有很多线程在谈论它,但是我暴露了一个在他们的帮助下我无法解决的情况。我希望我的问题,如果将来解决了,我可以帮助更多处于我这种情况的人。
我正在尝试在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_PASSWORD
AND 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 错误?
噜噜哒
相关分类