最近在学ssm框架,为了提高学习效率,想使用tomcat-maven插件热部署,网上有很多关于这方面的文章,但是有很多坑。
自己总结了一下,简化了多余的配置,还有运行过程中发生异常的原因。
环境:apache-tomcat-7.0.90、Kepler Service Release 2、jdk1.7.0_07、win10-64位
-
1.tomcat配置用户
apache-tomcat-7.0.90》conf》tomcat-users.xml
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui" username="tomcat"/>
-
2.pom.xml配置tomcat-maven插件
<!-- 配置tomcat插件 -->
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<!-- 如果你的tomcat端口不是8080,请修改url中的端口号,改成你tomcat实际的端口号 -->
<url>http://localhost:8080/manager/text</url>
<username>tomcat</username>
<password>tomcat</password>
<!-- 访问项目时的端口号 -->
<port>9091</port>
<!-- 访问项目时的url前缀 -->
<path>/e3-manager-web</path>
<contextReloadable>true</contextReloadable>
</configuration>
</plugin>
</plugins>
</build>
-
3.运行项目
启动tomcat,选中工程,右键Run AS》maven build》tomcat7:run,浏览器访问http://localhost:9091/e3-manager-web
这样tomcat-maven插件就实现热部署了,修改Java代码、jsp或者spring配置文件,会重新初始化上下文。
是不是感觉超级简单,但是我搞了好几天,遇到的问题分享出来。
-
4.问题说明
使用Run AS》maven相关命令时,无响应或者报错Check $M2_HOME environment variable and mvn script match.时,说明你没有用eclipse自带的maven插件embedbed,这个是eclipse的大坑,最好用eclipse自带的maven插件,不要用外部的maven工具。
Cannot invoke Tomcat manager: Connection refused: connect,报这个错说明你配置的url端口号不对,或者你的tomcat没有启动
FAIL - Application already exists at path /,path不能配置为斜杠/,当然为了避免配置错误,你的pom.xml文件可以不配path节点,这个时候访问路径默认为项目名称。
Tomcat return http status error: 403, Reason Phrase: Forbidden,url路径错误的配置成了html,要配成text
Cannot invoke Tomcat manager: Connection reset by peer: socket write error,重复进行远程部署会报这个错误