idea遠程部署項目到tomcat整理

昨天整一個idea遠程部署,搞得頭破血流的,整理一下,免得下次受苦。

幾個常用資源


  • tomcat
http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.17/bin/apache-tomcat-9.0.17.tar.gz
  • jdk
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
  • mysql
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

服務端tomcat配置


在tomcat安裝目錄/bin/catalina.sh 腳本中添加一下命令,注意雙引號之間是傳遞給JVM的參數(shù),一個-D就是一個KV設(shè)置,保險起見每行后面留個空格,因為不知道換行符會不會生效。

CATALINA_OPTS="-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=1099  #idea默認jmx端口
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false 
-Djava.rmi.server.hostname=192.168.3.68  #與本機域名或者ip保持一致即可
-agentlib:jdwp=transport=dt_socket,address=15833,suspend=n,server=y"  #jdwp調(diào)試端口15833
export CATALINA_OPTS

用以下命令運行tomcat,不要用startup腳本

./catalina.sh run &

idea deploy設(shè)置


菜單欄Tools->Deployment->Configure->左上角+按鈕:


添加部署設(shè)置

輸入部署的別名,比如Test,點擊OK


部署設(shè)置

按照上圖的說明填寫對應的資料。

如果是ubuntu系統(tǒng),SFTP協(xié)議是默認啟用的,賬號密碼和SSH登錄的一樣是主機用戶,填完點擊Test SFTP connection測試一下。這里踩了一坑,還自己搭FTP服務器,慢的要死。

idea 運行設(shè)置


菜單欄Run->Edit Configurations->左上角+按鈕->Tomcat Server->remote:

idea 運行設(shè)置

按照圖中的說明填寫對應的資料,Tomcat Server Settings中的設(shè)置,就使用前面的deploy設(shè)置即可。

這里的Application Server設(shè)置也踩了一坑,因為是部署到遠端的tomcat,我以為是要填寫或者映射到服務器tomcat的路徑,差點就搭一個smb服務出來。實際上這里是要本機的tomcat環(huán)境,用來解決項目編譯依賴的,選擇你本機安裝的tomcat目錄即可。

遇到的問題


防火墻設(shè)置

tomcat運行起來之后,默認是在8080端口,但是訪問云主機,是無法打開測試頁面的,這是因為云主機的防火墻攔截了,要手動打開你需要的端口。

除了8080以外,還有jdwp端口,rmi等你需要的端口都要打開,不用再關(guān)掉。出連接錯誤了,就看看是不是防火墻設(shè)置問題。

tomcat重裝后啟動失敗

我買的是阿里云主機,其他的大概也一樣。云主機有一個隨機的id和一個固定的內(nèi)部ip,它是通過/etc/hosts來配置的。在云主機上部署tomcat不知道為啥要去解析id對應的主機,如果解析失敗就無法啟動。如果報這個錯誤,用以下命令恢復主機映射即可。

echo "172.17.x.x iZXXXZ" >> /etc/hosts

ip地址是你云主機的內(nèi)部地址,iZXXXZ是報錯的主機id。就是這玩意折騰了我半宿,最后找阿里云客服給的解決方案。

idea部署失敗

配置完后使用run直接部署服務或者debug,在本地的虛擬機上是可以的,但是在云主機上,就回報java rmi 連接超時,查看防火墻的端口1099是開放的,換Idea的rmi端口也不行。

這個沒找到解決辦法,只能在部署、調(diào)試的時候把tcp端口都打開,完事再關(guān)掉了。如果是正式上線,就想辦法手動拷貝吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容