【问题标题】:deploy with maven on tomcat7在tomcat7上使用maven部署
【发布时间】:2012-08-06 07:49:38
【问题描述】:

您好,我正在尝试使用 maven 部署我的应用程序。通过 web 界面部署炒锅。但 maven 首先取消部署应用程序(这是正确的),然后在日志消息“已上传”处停止 ca.30 秒并失败:

tomcat7:部署

[INFO] Deploying war to http://192.168.1.137:8080/Application
Uploading: http://192.168.1.137:8080/manager/html/deploy?path=%2FApplication&update=true
Uploaded: http://192.168.1.137:8080/manager/html/deploy?path=%2FApplication&update=true (17575 KB at 23215.6 KB/sec)

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 57.061s
[INFO] Finished at: Mon Aug 06 09:41:27 CEST 2012
[INFO] Final Memory: 19M/220M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.0-beta-1:deploy (default-cli) on project Application: Cannot invoke Tomcat manager: The target server failed to respond -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

我的 pom.xml 中的配置

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <configuration>
        <url>http://192.168.1.137:8080/manager/html</url>
        <username>admin</username>
        <password>password</password>
        <path>/Application</path>
        <update>true</update>
    </configuration>
</plugin>

我也尝试了旧插件与 tomcat:redeploy:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>tomcat-maven-plugin</artifactId>
    <configuration>
        <url>http://192.168.1.137:8080/manager/html</url>
        <username>admin</username>
        <password>password</password>
        <path>/Application</path>
    </configuration>
</plugin>

但它也失败了:

[ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:redeploy (default-cli) on project Application: Cannot invoke Tomcat manager: Unexpected end of file from server -> [Help 1]

是否可以更改部署的超时时间?也许我的应用需要很长时间才能启动

编辑: 我发现当我签出项目并在运行 tomcat 的同一台机器上运行 tomcat7:deploy 时,它可以工作

【问题讨论】:

    标签: tomcat maven deployment


    【解决方案1】:

    虽然回答迟了,但有人可能会觉得这很有用。 如果您使用的是 maven3 和 tomcat7。下面的方法对我有用。我不知道 tomcat7 中应用程序管理器端点的变化。

    Environment - Apache Maven 3.0.4,apache-tomcat-7.0.34,Windows 7
    

    Tomcat7 已将其部署端点从 http://tomcatserver:8080/manager/html 更改为 http://tomcatserver:8080/manager/text

    所以我的 pom.xml 将是

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>tomcat-maven-plugin</artifactId>
         <configuration>
               <url>http://tomcatserver:8080/manager/text</url>
               <server>tomcat</server>
              <path>/myWebApp</path>
             </configuration>
      </plugin>
    

    在 tomcat-users.xml 中

    <role rolename="manager-gui"/>
      <role rolename="manager-script"/>
      <role rolename="manager-jmx"/>
      <role rolename="manager-status"/>
      <role rolename="admin-gui"/>
      <role rolename="admin-script"/>
    
      <user username="root" password="root" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>
    

    在 maven settings.xml 中

    <server>
      <id>tomcat</id>
      <username>root</username>
      <password>root</password>
    </server>
    

    在 context.xml 中,虽然这是可选的,并且与 maven3 部署到 tomcat7 无关,但有时可能会发生 jar 锁定,所以为了更安全。

    <Context  antiJARLocking="true" antiResourceLocking="true">
    

    现在发布

    mvn tomcat:deploy
    

    记得在部署maven之前启动tomcat。

    如果部署成功,您的应用程序将在

    http://tomcatserver:8080/myWebApp
    

    【讨论】:

    • 如何将应用部署到多台服务器?
    【解决方案2】:

    我猜你现在正在执行目标 tomcat:deploy,而不是那样,尝试运行目标 tomcat:redeploy 并确保你在 pom.xml 中添加了 tomcat-maven-plugin。 xml

    【讨论】:

    • 无法调用 Tomcat 管理器:目标服务器无法响应 实际上问题出在 tomcat 上。尝试构建之后,只需手动启动 tomcat
    • 可能是tomcat的问题,但不知道是什么问题:webinterface上的deploymant可以正常工作,maven可以登录管理器开始上传
    • 是的,您是否尝试过手动启动 tomcat 并在此之后进行部署??
    • tomcat是手动启动的,他一直作为服务运行
    • 我只是尝试调试战争上传,但部署插件似乎忽略了代理设置
    猜你喜欢
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 2013-12-03
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多