tomcat远程调试

1、开启tomcat的JPDA远程debug

在tomcat的/bin/catalina.sh文件中,有如下:

if [ "$1" = "jpda" ] ; then
  if [ -z "$JPDA_TRANSPORT" ]; then
    JPDA_TRANSPORT="dt_socket"
  fi
  if [ -z "$JPDA_ADDRESS" ]; then
    JPDA_ADDRESS="8000"
  fi
  if [ -z "$JPDA_SUSPEND" ]; then
    JPDA_SUSPEND="n"
  fi
  if [ -z "$JPDA_OPTS" ]; then
    JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
  fi
  CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"
  shift
fi

其中JPDA_OPTS为tomcat设置开启远程配置所在的位置,默认,调试的端口为8000。但是开启调试模式的条件是$1="jpda"。其中, $1表示执行catalina.sh时输入的第一个参数,而调用catalina.sh的一般是/bin/start.sh。在start.sh文件的末尾,默认为:

exec "$PRGDIR"/"$EXECUTABLE" start "$@"

可以看出,默认是不开启jpda远程调试模式的。所以,开启方式如下:

方法1:

  • startup.sh最后一句改为:exec "$PRGDIR"/"$EXECUTABLE" jpda start。(传入jpda参数)

  • 修改调试端口号为想要的端口号:

  if [ -z "$JPDA_ADDRESS" ]; then
    JPDA_ADDRESS="8046"
  fi

然后执行./startup.sh就可以了

方法2:

  • bin目录底下新建一个start_debug.sh:

#!/bin/bash
export JPDA_DEBUG="-Xdebug -Xrunjdwp:transport=dt_socket,address=8046,server=y,suspend=n"
export JAVA_OPTS="$JAVA_OPTS $JPDA_DEBUG"
./startup.sh

使用./start_debug.sh启动tomcat便可以了

方法3:

  • 只修改catalina.sh,在文件的首部,添加:

JAVA_OPTS="-server -Xms2048m -Xmx4096m -Xss512K -XX:PermSize=128M -XX:MaxPermSize=256m -Xdebug -Xrunjdwp:transport=dt_socket,address=8046,server=y,suspend=n"

执行./startup.sh便可以了。

2、IDEA开启远程调试模式

tomcat远程调试_第1张图片

tomcat远程调试_第2张图片



你可能感兴趣的:(tomcat,idea,jpda)