linux中tomcat启动报错

今天在linux同一服务器部署部署两个tomcat,tomcat1启动正常,tomcat2启动时包如下错误:

1
2
3
4
5
6
ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]
ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]

通过分析第一行错误,肯定是由于端口占用问题造成,但我在启动tomcat前已经对server.xml中的端口进行了更改,保证两个tomcat服务端口不冲突。后来在网上查找原因说是由于tomcat开通了远程调试端口,随即想起之前通过idea对服务器上的tomcat进行过远程调试,修改过tomcat中bin目录下的catalina.sh文件,

1
2
3
4
5
6
7
8
9
# -----------------------------------------------------------------------------
# 支持Intellij IDEA 远程Debug
export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'
# OS specific support. $var _must_ be set to either true or false.
cygwin=false
darwin=false
os400=false

从上文可看出,由于两个tomcat中的远程调试端口都为5005所以造成端口冲突,解决办法,注释远程调试配置或者将两个tomcat中的远程调试端口设置不一样即可。