【问题标题】:How to redeploy a war on remote Tomcat 7 using maven-tomcat-plugin如何使用 maven-tomcat-plugin 在远程 Tomcat 7 上重新部署战争
【发布时间】:2014-03-26 19:40:36
【问题描述】:

我正在尝试使用 Windows 中的命令提示符将战争从本地计算机重新部署到远程 Tomcat 7。我可以第一次使用 tomcat-maven-plugin 上传战争,但随后的上传给了我这样的消息。

pom.xml

 <!-- Deploy to Remote Tomcat -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <url>${unix.tomcat.url}</url>
                    <server>sandbox-tomcat</server>
                    <path>/${project.artifactId}</path>
                </configuration>
            </plugin>

Maven 命令:

mvn tomcat7:redeploy

Maven 日志:

[INFO] Deploying war to http://secdevapp11.gspt.net:8080/istore-tax-service
Uploading: http://secdevapp11.gspt.net:8080/manager/text/deploy?path=%2Fistore-tax-service&update=true
Uploaded: http://secdevapp11.gspt.net:8080/manager/text/deploy?path=%2Fistore-tax-service&update=true (1334 KB at 512.7 KB/sec)

[INFO] tomcatManager status code:200, ReasonPhrase:OK
[INFO] FAIL - Unable to delete [/nfs/home_04/chandeln/installations/apache-tomcat-7.0.52/webapps/istore-tax-service]. The continued presence of this file may cause problems.
[INFO] FAIL - Application already exists at path /istore-tax-service
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.704s
[INFO] Finished at: Wed Mar 26 15:34:55 EDT 2014
[INFO] Final Memory: 21M/224M
[INFO] ------------------------------------------------------------------------

【问题讨论】:

    标签: maven tomcat7 maven-tomcat-plugin


    【解决方案1】:

    我也有这个问题。 对我来说,它可以在 tomcat-plugin 中添加更新标签

            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>     
                ... 
                <update>true</update>
    
                ...
    

    并再次使用 tomcat7:deploy 命令(而不是“重新部署”)。

    (刚刚注意到答案仍然存在......,抱歉重复)

    【讨论】:

      【解决方案2】:

      这可能是由于文件被tomcat锁定。

      你可以通过将&lt;Context antiResourceLocking="true"&gt;添加到tomcat上下文来解锁它

      【讨论】:

      • 我尝试添加 但它不起作用。仍然遇到同样的异常。
      • 我将我的目标部署从基于 Unix 的 Tomcat 更改为基于 Windows 的 Tomcat,它可以正常工作。部署到基于 Unix 的 Tomcat 是否需要任何其他配置?
      • 您的问题可能与 unix 服务器上的文件权限有关。您在 unix 上的 tomcat 用户是否有权删除文件?
      • "antiJARLocking 是 antiResourceLocking 的子集,因此,为防止重复工作和可能出现的问题,任何时候都应将这些属性中的一个设置为 true。"
      • 好的。创建 context.xml 时,我的 IDE 会自动添加 antiJARLocking="true" 属性。但是,我看到这个错误也在 Windows 机器上间歇性地发生。不知道发生了什么。
      【解决方案3】:

      【讨论】:

      • 如果您查看我上面提到的日志,update=true 会自动添加到 url 的末尾。你说的是这个吗?
      【解决方案4】:

      我在从 Netbeans IDE 8.0.2 部署 maven 应用程序时发生了这个问题,并且 context.xml 中的路径设置为带有斜杠。

      <Context antiJARLocking="true" path="/foo/" />
      

      删除尾部斜杠为我解决了这个问题。

      <Context antiJARLocking="true" path="/foo" />
      

      【讨论】:

        【解决方案5】:

        我将 antiJARLocking = "true" 添加到我的 context.xml 文件中,如下所示

        <Context antiJARLocking = "true" path="/somepath" />
        

        然后右键单击项目并选择“Clean and Build”,

        并运行您的项目。

        这对我有用。

        【讨论】:

        • 这不是问题的答案,而是评论/新问题。一旦您有足够的声誉 (50),您就可以对任何帖子发表评论。与此同时,您可以通过提出自己的问题或就您知道的主题提供答案来赢得声誉。
        猜你喜欢
        • 2019-04-10
        • 2020-09-24
        • 2013-03-23
        • 2011-09-20
        • 2012-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-01
        相关资源
        最近更新 更多