intellij idea部署ssm/web項目到遠程tomcat遇到的1099端口問題

以前做JavaEE項目用的都是MyEclipse,但是苦於該IDE的流暢度以及代碼重構時的困難(用了之後你就知道了,尤其是針對於類和變量的重命名),我決定更換到IntelliJ IDEA,如果各位也想更換的話,入門不是很困難,針對於學生提供一年一次審覈的免費套裝,全套裝的Ultimate版,正式拜託盜版。

好的,切入正題,用過eclipse(Java EE版)和myeclipse的同學們都知道,發佈項目其實是導出成war包直接傳到webapp下刷新就行了,但是IntelliJ導出war包太麻煩,由此,idea提供了一個更爲便捷的方法,可以直接將tomcat配置到遠程服務器,在intellij上“稍加”配置就可以直接發佈到遠程的tomcat服務器了。


配置遠程發佈請移步https://segmentfault.com/a/1190000012762629

上面這個blog的博主寫的非常詳細,在此爲博主打call!!!


但是這個教程還是存在問題的。在翻遍各大論壇的教程,再加以自己的經驗分析,最終成功的將ssm項目發佈到了博主阿里雲的遠程服務器上。

詳細研究之後總結了以下幾點問題:

1、啓動Catalina時1099端口被佔用

2、1099端口連接超時


博主的運行環境是:

IntelliJ IDEA:2018.1

Tomcat:阿里雲遠程Tomcat

系統:CentOS


解決方案:


1、端口被佔用:

執行下面命令:

netstat -tln | grep 1099

將會得到端口的使用情況

再執行

lsof -i:1099

(未找到命令執行yum install lsof)

將會得到使用端口的程序

找到相應的PID

執行

kill -9 PID


2、端口連接超時

在網上我也搜了好多的教程,但是或多或少的都存在問題,不是連接不成功就是連接超時,其根本問題就是出在了1099端口上。最典型的問題就是

Error running 'TomcatRemote': 

Unable to connect to the xx.xx.xx.xx:1099, 

reason:

 java.rmi.ConnectException: Connection refused to host: xx.xx.xx.xx; 

nested exception is: java.net.ConnectException: Connection timed out: connect

這個錯誤根本原因就是服務器的配置出了問題,jmx沒有成功啓動。

解決方法就是在catalina.sh文件中添加如下代碼:

JAVA_OPTS="-Dcom.sun.management.jmxremote=
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.rmi.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname="

JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"

export JAVA_OPTS

到如下位置:


以前tomcat用的啓動方式是./start.sh

而現在用的是caatalina.sh,就需要用catalina啓動,具體命令如下

./catalina.sh run

但這樣啓動的話會導致當前終端被阻塞,並且關閉終端後無法繼續後臺運行

因此命令改爲:

catalina.sh run > /dev/null 2>&1 &

其中“ > /dev/null 2>&1 &”是Linux中的命令:把標準輸出和出錯處理都放到回收站,這樣就免得一大堆輸出佔領你的屏幕。 


以上呢,就是IntelliJ在發佈到遠程的Tomcat上遇到的最常見的問題。如果有其他問題歡迎聯繫[email protected]交流。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章