【Maven】Maven配合Tomcat进行热部署的常见问题及解决

在学习Maven时学习到配合Tomcat进行热部署的问题。所谓的热部署,即是在Tomcat服务器启动的时候,将项目动态部署上去。

我使用的是Tomcat7.0.52和Maven3.6.3和eclipse+jdk1.8

在进行热部署时,首先要开启Tomcat热部署:

    a)修改tomcat -> conf-> tomcat-users.xml 配置文件;

    b)在tomcat-users标签中加入以下代码:username与password是自定义的,而在Tomcat7中要配置gui和script权限

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="joey" password="123123" roles="manager-gui, manager-script"/>

热部署完成后,接下来要启动Tomcat,在Maven项目中的pom.xml中修改Tomcat7插件配置,添加如下代码:

<configuration>
	<url>http://localhost:8080/manager/text</url>
	<username>joey</username>
	<password>123123</password>
</configuration>

最后通过run as -> maven build… 在goals中使用tomcat7:deploy或tomcat7:redeploy来进行热部署。以上是正确的步骤

接下来是我遇到的错误:deploy后编译器报错,并未成功部署

无法转换URL路径,看回我项目中的插件配置

url中少了http:// (协议头),所有导致url无法正常解析,经测试,若少了后面的/text,同样无法正确部署。因此在使用tomcat7进行热部署操作时,一定要注意插件配置的正确性!!

接下来整合一下Maven与Tomcat热部署中常见的错误

a)Connection refused 错误

[ERROR]Failed to execute goal org.apache.tomcat.maven: tomcat7-maven-plugin: 2.0- SNAPSHOT: deploy 
(default-cli) on project helloworld: Cannot invoke Tomcat manager: Connection refused: connect -> [Help 1]

导致此错误原因是未启动Tomcat

解决办法是先启动Tomcat,注意热部署就是在服务器运行中部署上项目。

b)   401错误

[ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin: 2.0-SNAPSHOT:deploy (default-cli) on 
project helloworld: Cannot invoke Tomcat manager: Server returned HTTP response code: 401 for URL: 
http://localhost:8080/manager/text/deploy?path=%2Fhelloworld -> [Help 1]

导致此错误的主要原因是因为权限不足的问题。

解决的办法是在文章前面提到的要先修改Tomcat 中的tomcat-users.xml的权限信息同时还要修改项目中的pom.xml中的插件信息

c)  403错误

[ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin: 2.0-SNAPSHOT:deploy (default-cli)
 on project helloworld:Cannot invoke Tomcat manager: Server returned HTTP response code:
 403 for URL: http://localhost:8080/manager/html/deploy?path=%2Fhelloworld -> [Help 1]

产生该问题的主要原因有两个,一是因为pom.xml文件中url部署未写对(上文中我所犯的错误),二是因为用户缺少权限

解决办法

     i)检查pom.xml中tomcat插件配置中的url地址是否正确

<url>http://localhost:8080/manager/text</url>

   ii)检查tomcat用户权限配置文件中是否具备了manager-gui和manager-script权限

<user username="joey" password="123123" roles="manager-gui, manager-script"/>
发布了20 篇原创文章 · 获赞 8 · 访问量 3076

猜你喜欢

转载自blog.csdn.net/weixin_40423032/article/details/104629945