IDEA 部署JavaWeb项目到远程服务器的Tomcat

前言

应用场景


在本地IDEA下开发JavaWeb项目并部署到远程服务器上的Tomcat,传统方式是在本地运行项目生成war文件.但其实我们可以通过IDEA以及相关配置,来实现在IDEA运行项目的同时自动将项目上传部署到服务器上的Tomcat。

实验环境、工具


  • 腾讯云服务器 CentOS 7.2 64位

  • Xshell:用于在本地连接腾讯云服务器,远程操作服务器的终端

  • IDEA 2017.2旗舰版(Ultimate)

  • 本地 Windows10 OS

必须的环境配置


远程服务器上面必须先安装JDKTomcat,确保能正常访问到Tomcat默认的主页

服务器端配置

相关配置


参考IDEA官网的相关配置,来启动jmx。

  • cd /usr/local/webDevelopmentTools/tomcat/apache-tomcat-9.0.7/bin  (Tomcat安装目录下的bin文件夹)

  • vim catalina.sh

  • catalina.sh文件最前面添加以下配置

1
2
3
4
5
6
7
8
9
10
export CATALINA_OPTS="-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=10999 (替换成你的服务器可用的端口)
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=119.29.251.126" (替换成你的服务器IP)

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


注意:在配置端口之前需要检测一下配置的端口是否可用。

1
2
netstat -anp | grep 1099(需要检测的端口号)   
该命令用于检测端口是否可用,若是没有任何显示信息则说明可用

配置后Tomcat的启动方式


配置前
在这之前基本都是通过systemctl start xxxx.service的方式来启动Tomcat,其实本质就是执行Tomcat安装目录下bin文件夹中的startup.sh脚本去启动的。


配置后
现在我们则需要通过catalina.sh脚本来启动Tomcat,该脚本同样是在Tomcat安装目录下的bin目录。

1
2
cd /usr/local/webDevelopmentTools/tomcat/apache-tomcat-9.0.7/bin
catalina.sh run > /dev/null 2>&1 &

其中“ > /dev/null 2>&1 &”是Linux中的命令:把标准输出和出错处理都放到回收站,这样就免得一大堆输出占领你的屏幕。


启动之后,使用命令jps,若出现下面类似信息则说明配置成功或者通过浏览器去访问Tomcat的默认主页来检测。

本地配置

IDEA创建JavaWeb项目


使用IDEA创建一个JavaWeb项目来进行测试,如何在IDEA创建一个JavaWeb项目参考


IDEA的Tomcat配置


  • 进行IDEA的Tomcat配置,选择Edit Configurations


  • 新建一个Tomcat配置,跟以往的配置不同的是这次选择的Tomcat Server是Remote,即远程的服务器上Tomcat


  • 运行配置名称、运行Tomcat版本、访问URL的配置、远程服务器上Tomcat连接配置

注意:在选择Tomcat版本时,所选择的只能看到本地的Tomcat,因此为了保证运行Tomcat的版本配置的正确,所以最好保证本地的Tomcat与远程服务器上的Tomcat版本一致,即本地安装的Tomcat与服务器上安装的Tomcat版本一致


  • 远程服务器上Tomcat的配置

    • 配置连接类型以及创建一个新的服务器连接配置

    • 创建一个新的服务器连接配置则会出现以下窗口



    • 配置服务器连接信息




    • 选择上一步配置的服务器连接信息


    • 配置Deployment



    • 配置jmx端口,即与前面服务器配置的Dcom.sun.management.jmxremote.port一致

部署测试


保存以上配置之后运行前面配置的远程Tomcat配置

参考链接