在maven的web项目里面,会用到tomcat的maven plugin进行部署,却经常会出现
Cannot invoke Tomcat manager: Software caused connection abort: socket write error
或者
Cannot invoke Tomcat manager: Connection reset by peer: socket write error
也或者
Cannot invoke Tomcat manager: xxxxxxxxxxx
为什么会这样
首先我先贴出我的配置信息
首先去配置tomcat的conf目录下的tomcat-user.xml
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="123456" roles="manager-gui,manager-script" />
然后是maven 的setting,xml 配置
<server>
<id>tomcat7</id>
<username>admin</username> <!-- tomcat-user.xml 中的username-->
<password>123456</password> <!-- tomcat-user.xml 中的password-->
</server>
最后是web项目的pom文件下的plugin
<!-- Tomcat 自动部署 plugin -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port> <!-- 项目的端口-->
<path>/OvertimeReport</path> <!-- web项目的项目名称-->
<uriEncoding>UTF-8</uriEncoding>
<url>http://localhost:8080/manager/text</url> <!-- 对应的 tomcat manager的接口-->
<server>tomcat7</server> <!-- setting.xml 的server id-->
<username>admin</username> <!-- tomcat-user.xml 的 username -->
<password>123456</password> <!-- tomcat-user,xml 的 password -->
</configuration>
</plugin>
上面的配置我已经确认过无数遍,没有问题了,换了tomcat7也换了tomcat8也还是出现上文提到的异常
然后我去查看了一下tomcat 的logs下的日志文件发现他报了这么的一个错误
404?
原来maven是通过这个/manager/text/deploy的方法获取maven上传过来的web项目,然后在部署的
那么我查了一下,在tomcat下载完解压之后还真的有一个项目叫manager的初始项目
webapps目录下的文件全部删掉,然后在放你的项目,踩坑了