部署Tomcat服務時,解決Cannot invoke Tomcat Manager 異常


最近,在使用Jenkins對工程一鍵部署的時候,出現調用Tomcat Manager 異常,對其解決方案特記於次。

異常信息

可能存在的異常:(1)Cannot invoke Tomcat manager: Error writing to server ;(2)Cannot invoke Tomcat manager: Connection refused: connect -> [Help 1]。

異常原因

經查詢資料,安裝Tomcat時,默認帶着manager工程,其負責WAR包的部署等功能。由於使用manager需要賬戶與密碼進行驗證,所以如果沒有配置賬戶與密碼,就會報這樣的異常。

但還存在這種情況,下邊該配置的都配置了,但還會報這個異常,這時候需要你重啟一下Tomcat,然后再部署。(原因是由於Tomcat的遠程地址攔截器造成的結果,需要在/conf/Catalina/localhost/manager.xml中添加RemoteAddrValve屬性,參考文獻3)

解決方案

1. web工程的pom文件中添加的tomcat-maven-plugin插件,該插件用於將由maven構建的war包部署到指定的遠程Tomcat容器,並配置賬號與密碼等信息,該賬戶密碼需要與對應Tomcat的conf/tomcat-user.xml配置一致。

 1 <plugin>
 2     <groupId>org.codehaus.mojo</groupId>
 3     <artifactId>tomcat-maven-plugin</artifactId>
 4     <version>1.1</version>
 5     <configuration>
 6          <url>http://ip/manager/text</url>
 7          <username>tomcat</username>
 8          <password>tomcat</password>
 9          <update>true</update>
10          <path>/xxxx</path>
11     </configuration>
12 </plugin>

 其中,url指定遠程Tomcat,path對應webapps中的具體路徑。

2. 在conf/tomcat-user.xml中添加如下角色信息,以及具有這些角色的用戶

1 <role rolename="manager-gui" />
2 <role rolename="manager-script" />
3 <role rolename="admin-gui" />
4 <role rolename="admin-script" />
5 <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,admin-gui,admin-script" />

3. 有人說還需要修改Maven用戶倉庫路徑下的配置文件(USER_HOME/.m2/settings.xml),本人沒有改,也成功了(也寫在這做參考)。該配置是本地maven倉庫訪問遠程倉庫時,需要配置的用戶名和密碼。

 1 <settings>
 2     ...
 3     <servers>
 4         ...
 5         <server>
 6             <id>my-tomcat</id>
 7             <username>manager</username>
 8             <password>managerPwd</password>
 9         </server>
10     </servers>
11 
12 </settings>

參考:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM