为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 maven-tomcat7-plugin 在 Tomcat 上正确地热部署/重新部署战争?

如何使用 maven-tomcat7-plugin 在 Tomcat 上正确地热部署/重新部署战争?

料青山看我应如是 2022-01-06 17:56:26
我知道有很多线程在谈论它,但是我暴露了一个在他们的帮助下我无法解决的情况。我希望我的问题,如果将来解决了,我可以帮助更多处于我这种情况的人。我正在尝试在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 ,您不应该同时使用antiResourceLockingantiJARLocking功能:

antiJARLocking 是 antiResourceLocking 的一个子集,因此,为了防止重复工作和可能出现的问题,在任何时候只应将这些属性中的一个设置为 true。

还有关于使用antiResourceLocking 的具体警告

请注意,将此设置为 true 会产生一些副作用,包括在正在运行的服务器中禁用 JSP 重新加载:请参阅 Bugzilla 37668。

请注意,在主机的 appBase(默认为 webapps 目录)之外的应用程序中将此标志设置为 true 将导致应用程序在 Tomcat 关闭时被删除。您可能不想这样做,所以在为它的主机在 appBase 之外的 webapp 上设置 antiResourceLocking=true 之前要三思。


查看完整回答
反对 回复 2022-01-06
  • 1 回答
  • 0 关注
  • 163 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信