idea 远程部署、调试tomcat

idea 部署web工程 到 远程tomcat服务器上,并调试,记录一下;

环境:

CentOS 7.6

Tomcat 8.5.34 / 8.5.39 / 9.0.12

IDEA 2018.1

 

1、配置tomcat

tomcat服务器的IP地址:10.132.12.25

tomcat目录位置:/usr/local/apache-tomcat-8.5.34

 

conf/server.xml中,使用默认http 80端口;

 

bin/catalina.sh中,添加如下内容;

export 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=10.132.12.25"     =》tomcat服务器ip地址

export JAVA_OPTS="-Dcom.sun.management.jmxremote=
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

如果要远程调试,可以设置CATALINA_OPTS如下:

export 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=10.132.12.25 -agentlib:jdwp=transport=dt_socket,address=52951,suspend=n,server=y"

Debug使用socket方式传输,端口号自己设置,比如:52951

idea 远程部署、调试tomcat_第1张图片

 

启动tomcat,(不能再使用bin/startup.sh);

bin/catalina.sh run &

idea 远程部署、调试tomcat_第2张图片

 

2、创建maven web工程

idea 远程部署、调试tomcat_第3张图片

idea 远程部署、调试tomcat_第4张图片

使用本地独立的maven环境,maven仓;

idea 远程部署、调试tomcat_第5张图片

idea 远程部署、调试tomcat_第6张图片

创建成功后,默认在main目录下,只有webapp文件夹,包含index.jsp

idea 远程部署、调试tomcat_第7张图片

 

3、配置远程部署

选项卡:Server

idea 远程部署、调试tomcat_第8张图片

选择Build Artifacts -> web:war exploded ;

idea 远程部署、调试tomcat_第9张图片

选项卡:Deployment

idea 远程部署、调试tomcat_第10张图片

选项卡:Startup/Connection

如果要远程调试,选择Debug,参照第1节的配置,传输方式使用socket,端口52951;

idea 远程部署、调试tomcat_第11张图片

添加远程Server;

idea 远程部署、调试tomcat_第12张图片

也可以通过菜单Tools->Deployment->Configuration...,添加远程Server;

idea 远程部署、调试tomcat_第13张图片

 

点击Run运行,可以远程部署web;

idea 远程部署、调试tomcat_第14张图片

弹出网页;

idea 远程部署、调试tomcat_第15张图片

如果本地代码修改,只需要重新运行部署即可;

 

点击Debug调试,可以远程调试web工程;

idea 远程部署、调试tomcat_第16张图片

修改本地Java文件代码,Ctrl+F9,只会把修改后的class文件,上传到远程Tomcat服务器;

idea 远程部署、调试tomcat_第17张图片

idea 远程部署、调试tomcat_第18张图片

(在idea中,stop停止运行,不会影响远程Tomcat的运行)

 

问题:

1、如果运行时,出现如下错误:

Error running 'tomcat remote run': Unable to connect to the 10.132.12.25:1099, reason: java.rmi.ConnectException: Connection refused to host: 10.132.12.25; nested exception is: java.net.ConnectException: Connection timed out: connect

首先检查下CentOS 7的防火墙,是否没有放通1099端口;

如果是测试的话,可以直接关闭防火墙;

firewall-cmd --state

systemctl stop firewalld.service

2、远程调试时,修改Java文件,Ctrl+F9,可以把编译后的class文件,更新到远程Tomcat服务器;

修改本地jsp、js、css等文件,不会单独更新到远程Tomcat服务器;

因为如下 On 'Update' action,只有两个选项:Hot Swap classes,Redeploy;

TODO 还需要找找其他方法吧

idea 远程部署、调试tomcat_第19张图片

 

参考:

https://blog.csdn.net/tianjun2012/article/details/52795202

http://www.cnblogs.com/qnight/p/8983145.html

你可能感兴趣的:(idea 远程部署、调试tomcat)