最近在學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,重復進行遠程部署會報這個錯誤