1、idea設置
1.1 加入Tomcat Server選擇Remote

1.2:設置對應的參數

-
xxx.xxx.152.67:8080為遠程Tomcatserver的IP地址和port,這里能夠設置域名。比如:http://security.xxxx.cn/login.do;
-
60222這個port為1.1步中設置的debugport。適合tomcat的port不一樣的;
-
這里的Remote staging選擇的都是same file system,這就要求本地代碼和遠程Tomcat的代碼要一直;1
1.3 Startup/Connection

選擇Debug、Socket、調試port這里是60222
1.4:選擇執行

然后點擊右邊的debug就可以執行(首先Tomcat要啟動)
1.5:是否成功

能夠看到已經連接成功,
查看Tomcatserver日志。例如以下:

6、假設失敗
- 假設出現port被拒絕:
這樣的可能是tomcat並未啟動,或者遇錯誤停止,重新啟動Tomcat就可以
- 連接失敗。其它問題
首先在server端查看 調試port 這里是60222的使用情況
- 2.使用netstat
使用netstat -anp|grep 80- netstat -tln|grep 80
ps-ef|greptomcat 查看tomcat是否關閉-
tail - f 10000 catalina.out 查看日志
1.使用lsof 不好使不知道為什么
- kill -9 12122 刪除進程
2、Linux服務器設置
在tomcat下bin文件夾下catalina.sh文件中添加下面的定義:
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=60222,suspend=n,server=y"
拓展:
TALINA_OPTS vs JAVA_OPTS
在Tomcat的catalina.sh文件中的啟停server腳本中都應用到了兩個變量: CATALINA_OPTS和JAVA_OPTS。用於保存Tomcat運行所需的各種參數。
他們在文件中的注釋如下:
(可選)Java 執行"start","stop"或"run"命令時用到的運行時參數; [JAVA_OPTS]
(可選)Java 執行"start"或"run"命令時用到的運行時參數; [CATALINA_OPTS]
那么,為什么有兩個不同的變量?他們有什么區別?
首先,定義在這兩個變量中的參數都會被傳遞到啟動Tomcat的命令:"start"和"run",只有定義在JAVA_OPTS中的參數會被傳遞到"stop"命令。
所以將參數定義到哪個變量中並不影響Tomcat的啟動和運行,而只影響到了Tomcat的運行結束。
第二種區別更加微妙。其他應用程序也可以使用JAVA_OPTS,但Tomcat只會用到CATALINA_OPTS。所以如果你只使用了Tomcat,在設置環境變量時,你最好使用CATALINA_OPTS,而如果你同時也用到了其他java應用程序,如JBoss,在設置環境變量時你應該使用JAVA_OPTS。

注意:address=60222 這個是后邊IDEA設置的時候須要用到的調試port,能夠隨意設置一個未使用的port。可是后邊的配置都要一致.
三. 參數解釋:
1. JAVA支持調試功能,並提供了一個簡單的調試工具JDB,其可支持設置斷點及線程級的調試;
2. 各參數解釋:
-Xdebug是通知JVM工作在DEBUG模式下
-Xrunjdwp是通知JVM使用(java debug wire protocol)來運行調試環境。該參數同時了一系列的調試選項:
transport指定了調試數據的傳送方式,dt_socket是指用SOCKET模式,另有dt_shmem指用共享內存方式,其中,dt_shmem只適用於Windows平台。
server參數是指是否支持在server模式的VM中.
onthrow指明,當產生該類型的Exception時,JVM就會中斷下來,進行調式。該參數可選。
launch指明,當JVM被中斷下來時,執行的可執行程序。該參數可選
suspend指明,是否在調試客戶端建立起來后,再執行JVM。
onuncaught(=y或n)指明出現uncaught exception 后,是否中斷JVM的執行.
拓展:
http://www.51testing.com/html/68/n-3719568.html
https://blog.csdn.net/u014513883/article/details/53583495
