在idea中部署远程Tomcat

实现效果:
在idea中点击run时,自动将代码编译并上传、部署到远程服务器中

和传统的在本地服务器相比较的优势:
1、节省开发者开发机的资源,省去了本地服务器的CPU、内存的占用。
2、如果开发的程序为Android+J2EE或者IOS+J2EE等需要将服务器IP写入客户端,不需要客户端连接到同一局域网。

说明下我使用的版本信息:
idea 2016.1

Tomcat
本地用的8.0.29 安装在D:/apache-tomcat-8.0.29
远程服务器用的8.0.32 安装在/usr/local/apache-tomcat-8.0.32

本地OS Win10 x64 Pro

远程OS Centos 7 x64 使用ssh管理


远程服务器上操作:
0、准备工作
进去tomcat安装目录

cd /usr/local/apache-tomcat-8.0.32

1、修改环境变量,添加Tomcat启动参数
添加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=1.2.3.4"

export CATALINA_OPTS

2、清空webapps目录

rm -rf ./webapps/*

3、清空work/Catalina/localhost/目录

rm -rf ./work/Catalina/localhost/*

4、启动Tomcat

./bin/catalina.sh run &

开发机操作:
1、创建J2EE项目,我这里使用了maven创建了一个Hello World,如图
idea_tomcat_2_1.png

2、添加运行配置
idea_tomcat_2_2_1.png

idea_tomcat_2_2_2.png

idea_tomcat_2_2_3.png

idea_tomcat_2_2_4.png

idea_tomcat_2_2_5.png

idea_tomcat_2_2_6.png

idea_tomcat_2_2_7.png

3、运行项目
idea_tomcat_3_1.png

idea_tomcat_3_2.png

4、运行效果
idea_tomcat_3_3.png

注:1.2.3.4为我这里使用的远程服务器IP,实际使用时需要修改为自己的真实远程服务器IP

参考资料:
https://www.jetbrains.com/help/idea/2016.1/run-debug-configuration-tomcat-server.html

标签: none

已有 18 条评论

  1. thom thom

    建议使用local模式,啥都不需要改。
    而且吧,local模式支持 update classes and resources 模式,也就是说,改动文件以后,自动生效。(当然,仅限于改)

  2. 天地悠悠 天地悠悠

    博主,那个为idea在本地用Tomcat加载项目,为什么浏览器刷新好慢呢,既然是本地,应该刷新页面,或者打开、挑战页面很快才是.....

    1. @天地悠悠
      我这本地打开是挺快的

      1. hah hah

        @ilanyu
        不能呢
        PM Error running 'yctomcat': Unable to connect to the ip:1099

  3. ilanyu你好,这篇文章解决了我的问题, 我想转载这篇文章到我的博客做为笔记可以吗?

  4. qs qs

    请问为什么会显示无法连接了M Error running Unnamed: Unable to connect to the ip:1099
    这个问题应该如何去解决了。

    1. lo lo

      @qs@qs@qs我也是这样

  5. 泽少 泽少

    能不能将第一步添加环境变量那里写的再详细一点,我点击debug的时候也出现了ubable to connect to ip:1099,貌似linux上的tomcat的jmx的1099端口没打开

    1. @泽少
      修改这个java.rmi.server.hostname=1.2.3.4最后的1.2.3.4为服务器IP,然后运行

      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=修改后的IP"

      export CATALINA_OPTS

      不是挺详细了么

      1. Leonardo Leonardo

        @ilanyu
        我的也报错:
        Error running remote-api
        Unable to connect to the 192.168.99.248:1099, reason:
        java.rmi.ConnectException: Connection refused to host: 192.168.99.248; nested exception is:
        java.net.ConnectException: Connection timed out: connect
        但是tomcat启动日志显示
        -Dcom.sun.management.jmxremote
        01-Dec-2016 14:38:14.856 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099
        01-Dec-2016 14:38:14.856 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false
        01-Dec-2016 14:38:14.856 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.authenticate=false
        01-Dec-2016 14:38:14.857 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=192.168.99.248
        01-Dec-2016 14:38:14.857 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -agentlib:jdwp=transport=dt_socket,address=49739,suspend=n,server=y

  6. law52526 law52526

    Unable to connect to the ip:1099的,服务器的防火墙关了吗?

    1. @law52526
      666,一言惊醒

  7. 哎

    一群垃圾 不知道 csdn 上抄你的 还是 你抄csdn的,这个年头还是不要依靠什么论坛,因为都是一些喷子在上面乱回答,郑重

  8. Unable to connect to the ip:1099的同学,
    记得开放服务器防火墙端口号

  9. @林檀
    另外光开放1099不够,还需要开放server.xml中涉及的所有端口

评论已关闭