環境:
- CentOS 7
- Tomcat 9.0.1
- jdk-9.0.1
- IntelliJ IDEA 2017.3
Tomcat中的配置
- 在
catalina.sh
文件中加入以下的配置
CATALINA_OPTS="-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=192.168.19.200
-agentlib:jdwp=transport=dt_socket,address=15833,suspend=n,server=y"
export CATALINA_OPTS
- 以上端口可以隨意改動,但是必要的是后續的設置必須保持一致,並且務必保證端口沒有被占用,這些設置的端口在防火牆中是開放狀態;
- 其中1099的是tomcat遠程部署連接端口;
- 15833 是遠程調試的端口;
- 192.168.19.200是遠程的服務器的Ip。
- 啟動tomcat
使用命令啟動
./bin/catalina.sh run &
IDEA中的配置
新建遠程tomcat
配置遠程服務
配置連接tomcat的一些屬性
debug啟動測試
連接:
[2017-12-23 08:47:03,592] Artifact devframe-server:war exploded: Artifact is not deployed. Press 'Deploy' to start deployment
[2017-12-23 08:47:03,650] Artifact devframe-server:war exploded: Artifact is being deployed, please wait...
Connected to server
Connected to the target VM, address: '192.168.19.200:15833', transport: 'socket'
[2017-12-23 08:47:11,434] Artifact devframe-server:war exploded: Error during artifact deployment. See server log for details.
文件傳輸:
[2017/12/23 20:47] Uploading to 192.168.19.200 completed in less than a minute: 357 files transferred (8 Mbit/s)
這樣就能夠成功遠程部署並且調試了。
使用的技巧:
這樣每次修改完,點一下就可以熱部署,是不是很方便。
容易出現的問題
- 如果遠程沒有連接上,兩個端口被占用或者防火牆屏蔽。除了JMX server指定的監聽端口號外,JMXserver還會監聽一到兩個隨機端口號,這個如果防火牆關閉了的話就不用考慮,如果使用了防火牆,還需要查看它監聽的端口。
- 賬號的相應的讀寫權限一定要有;