Maven 无法调用Tomcat管理器:软件导致的连接中止

Maven 无法调用Tomcat管理器:软件导致的连接中止,maven,tomcat,Maven,Tomcat,我曾在多个地方看到,除了我自己,其他人都尝试过中介绍的所有解决方案,在浏览了谷歌上的每一页结果后,我都没有找到结果。我正在尝试将maven项目部署到Tomcat,但得到以下打印输出: [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] --------------------------------------------------

我曾在多个地方看到,除了我自己,其他人都尝试过中介绍的所有解决方案,在浏览了谷歌上的每一页结果后,我都没有找到结果。我正在尝试将maven项目部署到Tomcat,但得到以下打印输出:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11.178 s
[INFO] Finished at: 2016-08-03T15:01:17-04:00
[INFO] Final Memory: 15M/105M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli) on project Project_2: Cannot invoke Tomcat manager: Software caused connection abort: socket write error -> [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>
    <version>2.2</version>
    <configuration>
        <server>tomcat7</server>
        <path>/Project_2</path>
        <port>8085</port>
        <url>http://localhost:8085/manager/text</url>
        <update>true</update>
        <username>manager</username>
        <password>xxxx</password>
    </configuration>
</plugin>

org.apache.tomcat.maven

,Tomcat7插件将适用于Tomcat8。

我也有同样的错误

从Windows主机使用Java 7,目标是在本地VM(VirtualBox)中运行的Tomcat 7。访问经理的应用程序。从我的浏览器中可以很好地工作(
/html
/text

似乎不能将
manager gui
manager脚本
角色授予同一用户。因此,我最终让
deployer
用户担任
manager脚本
角色,在以下情况下,我能够正确执行Maven命令:

<tomcat-users>
   <role rolename="admin-gui"/>
   <role rolename="manager-gui"/>
   <role rolename="manager-script"/>
   <user username="admin" password="..." roles="admin-gui,manager-gui"/>
   <user username="deployer" password="..." roles="manager-script"/>
</tomcat-users>

参考资料:


同样的问题,通过Maven settings.xml中正确的凭据解决了。是,此错误消息具有误导性:

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli) on project projectXXX: Cannot invoke Tomcat manager
...
Caused by: org.apache.maven.plugin.MojoExecutionException: Cannot invoke Tomcat manager
...
Caused by: java.net.SocketException: Connection reset by peer: socket write error
我们在pom.xml中使用概要文件,因此:

<profile>
   <id>stage_server</id>
   <activation>
      <activeByDefault>true</activeByDefault>
   </activation>
   <properties>
      <tomcat-server>stage-server</tomcat-server>
      <tomcat-url>http://stage.server.com/manager/text</tomcat-url>
   </properties>
</profile>

我可以从邮递员那里上传文件,这样我就知道用户ID和密码是正确的,Tomcat服务器的设置是正确的。我在我的项目根目录下的my settings.xml中有用户和密码,但是,它没有读取它们,并且没有错误,它找不到我的服务器。我将用户和密码直接移动到POM.xml中,它成功了。我想我已经读过了,我可以把settings.xml放在项目的根目录中,但是,我肯定遗漏了什么。@J.Chaney我想你必须把settings.xml文件放在Maven home目录的子目录“conf”中。如果您在Maven home/conf目录中有这个文件,部署会成功吗?
<server>
  <id>tomcat7</id>
  <username>manager</username>
  <password>xxxx</password>
</server>
<tomcat-users>
   <role rolename="admin-gui"/>
   <role rolename="manager-gui"/>
   <role rolename="manager-script"/>
   <user username="admin" password="..." roles="admin-gui,manager-gui"/>
   <user username="deployer" password="..." roles="manager-script"/>
</tomcat-users>
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli) on project projectXXX: Cannot invoke Tomcat manager
...
Caused by: org.apache.maven.plugin.MojoExecutionException: Cannot invoke Tomcat manager
...
Caused by: java.net.SocketException: Connection reset by peer: socket write error
<profile>
   <id>stage_server</id>
   <activation>
      <activeByDefault>true</activeByDefault>
   </activation>
   <properties>
      <tomcat-server>stage-server</tomcat-server>
      <tomcat-url>http://stage.server.com/manager/text</tomcat-url>
   </properties>
</profile>
<plugin>
   <groupId>org.apache.tomcat.maven</groupId>
   <artifactId>tomcat7-maven-plugin</artifactId>
   <version>2.2</version>
   <configuration>
      <url>${tomcat-url}</url>
      <server>${tomcat-server}</server>
      <update>true</update>
   </configuration>
</plugin>
<server>
  <id>stage-server</id>
  <username>admin</username>
  <password>xxxxx</password>
</server>
   mvn tomcat7:deploy -Pstage_server