服务器:CentOS 7 + Tomcat 8.5.83 + JDK 1.8.0_321
开发环境:IDEA 2022.1.4 + Tomcat 8.5.83 + JDK 11.0.13
注意:在配置远程运行项目之前,必须确保服务器上 Tomcat 能正常运行,开发环境项目能够正常在本地 Tomcat 调试运行。
vim /usr/local/apache-tomcat-8.5.83/bin/setenv.sh
注意:笔者服务器上 Tomcat 的安装路径是 /usr/local/apache-tomcat-8.5.83,请根据实际情况修改!
增加以下内容:
CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=192.168.1.188"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote= -Dcom.sun.management.jmxremote.port=1099"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.rmi.port=1099"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
注意:不能写成一行!!!有很多帖子中上面的命令写成了一行,笔者在配置过程直接出现 Tomcat 不能正常启动,日志中出现 -dcom.sun.management.jmxremote:command not found 错误
保存修改后,重新启动 Tomcat
setenv.sh
配置的端口号在上一步中,配置文件的端口是1099
,需要在防火墙中开放该端口
开放端口:firewall-cmd --zone=public --add-port=1099/tcp --permanent
重载防火墙:firewall-cmd --reload
按照 Edit Configrations -> “+” -> Tomcat Server -> Remote 的步骤,进入 Tomcat 配置界面
如下图所示,在 Tomcat Server Settings 中,首先选择 Type 为 sftp,然后点击 Host 右边的 “…”
点击左上角的 “+”,选择 SFTP
在弹出的输入框中输入 server name
点击 SSH configuration 右侧的 “…”,配置 SSH
结合实际情况按照下图配置 SSH,Username、Password 为可以登录服务器的管理员名和密码,配置完成后,点击“Test Connection”按钮,弹出连接成功即配置无误。
关闭对话框,点击“OK”按钮回到 Deployment 窗口,在 SSH configuration 下拉框中选择上一步创建的 SSH 配置。同时在 Web server URL 中输入服务器中 Tomcat 的访问 URL,可以通过右侧的按钮验证 URL 是否正确。
点击 Root path 右侧的文件浏览按钮,如果 SSH 配置正确,文件浏览对话框将会加载出服务器的文件路径,选择 Tomcat 的 webapps 路径。
切换到 Mapping 选项卡,按下图填入 Deployment path 和 Web path
如下图所示,在 Tomcat Server Settings -> Host 中选择前面创建的连接,并填写 Path From root 和 Mapped as,指向的位置都是服务器上 Tomcat 的 webapps 路径。JMX port 填写 2.1 参数中设置的端口
同时,在 Remote Connection Settings 中填写服务器 Tomcat 的访问主机和端口。
最后,在 Name 栏给配置命名。
切换到 Deployment 选项卡,如图选择
选择 war
修改访问路径(访问路径变成了 192.168.1.188:8080/tomcat_demo)
点击 Configure 按钮,选择本地 Tomcat 路径
On ‘Update’ action 选择 Redeploy
点击 Run 按钮,等待片刻将出现如下提示,表示运行成功
从图中可以看到,TestController.hello() 的访问路径为 /test/hello,之前配置项目的访问路径是 http://192.168.1.188:8080/tomcat_demo,故完整的 URL 是:http://192.168.1.188:8080/tomcat_demo/test/hello