intellij idea部署ssm/web项目到远程tomcat遇到的1099端口问题

以前做JavaEE项目用的都是MyEclipse,但是苦于该IDE的流畅度以及代码重构时的困难(用了之后你就知道了,尤其是针对于类和变量的重命名),我决定更换到IntelliJ IDEA,如果各位也想更换的话,入门不是很困难,针对于学生提供一年一次审核的免费套装,全套装的Ultimate版,正式拜托盗版。

好的,切入正题,用过eclipse(Java EE版)和myeclipse的同学们都知道,发布项目其实是导出成war包直接传到webapp下刷新就行了,但是IntelliJ导出war包太麻烦,由此,idea提供了一个更为便捷的方法,可以直接将tomcat配置到远程服务器,在intellij上“稍加”配置就可以直接发布到远程的tomcat服务器了。


配置远程发布请移步https://segmentfault.com/a/1190000012762629

上面这个blog的博主写的非常详细,在此为博主打call!!!


但是这个教程还是存在问题的。在翻遍各大论坛的教程,再加以自己的经验分析,最终成功的将ssm项目发布到了博主阿里云的远程服务器上。

详细研究之后总结了以下几点问题:

1、启动Catalina时1099端口被占用

2、1099端口连接超时


博主的运行环境是:

IntelliJ IDEA:2018.1

Tomcat:阿里云远程Tomcat

系统:CentOS


解决方案:


1、端口被占用:

执行下面命令:

netstat -tln | grep 1099

将会得到端口的使用情况

再执行

lsof -i:1099

(未找到命令执行yum install lsof)

将会得到使用端口的程序

找到相应的PID

执行

kill -9 PID


2、端口连接超时

在网上我也搜了好多的教程,但是或多或少的都存在问题,不是连接不成功就是连接超时,其根本问题就是出在了1099端口上。最典型的问题就是

Error running 'TomcatRemote': 

Unable to connect to the xx.xx.xx.xx:1099, 

reason:

 java.rmi.ConnectException: Connection refused to host: xx.xx.xx.xx; 

nested exception is: java.net.ConnectException: Connection timed out: connect

这个错误根本原因就是服务器的配置出了问题,jmx没有成功启动。

解决方法就是在catalina.sh文件中添加如下代码:

JAVA_OPTS="-Dcom.sun.management.jmxremote=
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.rmi.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname="

JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"

export JAVA_OPTS

到如下位置:


以前tomcat用的启动方式是./start.sh

而现在用的是caatalina.sh,就需要用catalina启动,具体命令如下

./catalina.sh run

但这样启动的话会导致当前终端被阻塞,并且关闭终端后无法继续后台运行

因此命令改为:

catalina.sh run > /dev/null 2>&1 &

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


以上呢,就是IntelliJ在发布到远程的Tomcat上遇到的最常见的问题。如果有其他问题欢迎联系[email protected]交流。


猜你喜欢

转载自blog.csdn.net/u012188141/article/details/80039942