最近在做bizexpress应用的一个postoffice接口下线改造,该应用是一个非web应用。部署到测试机(linux环境),启动脚本,发现无法进行远程debug.
启动脚本:
#!/bin/bash
if [ ! -d "${HOME}/output/logs/mail/sys/err_mail" ];then
mkdir -p ${HOME}/output/logs/mail/sys/err_mail
fi
if [ ! -d "${HOME}/output/logs/mail/sys/out_mail" ];then
mkdir -p ${HOME}/output/logs/mail/sys/out_mail
fi
# preserve current working directory
pushd `dirname $0`/.. > /dev/null
BASE=`pwd`
popd > /dev/null
SYSTEM_ROOT=/usr/alibaba
# env vars for resin
export JAVA_HOME=$SYSTEM_ROOT/java5
CLASSPATH=`echo $HOME/task/lib/*.jar | tr ' ' ':'`
export CLASSPATH
#echo $CLASSPATH
export LANG=en_US
ret=`ps --width 500 auxef |grep "com.alibaba.bizexpress.console.mail.Starter" | grep -v "grep"`
if [ -z "$ret" ]; then
JVM_ARG=" -server -Xmx1g -Xms512m -XX:NewSize=256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseParallelGC"
$JAVA_HOME/bin/java $JVM_ARG -Dproject.home=$HOME/task com.alibaba.bizexpress.console.mail.Starter 1>>${HOME}/output/logs/mail/sys/out_mail/out_mail_`date +'%y%m%d'`.log 2>>${HOME}/output/logs/mail/sys/err_mail/err_mail_`date +'%y%m%d'`.log &
else
echo "Mail Service is running...cancel start.."
exit
fi
里面没有配置远程debug端口
JVM_ARG=" -server -Xmx1g -Xms512m -XX:NewSize=256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseParallelGC"
末尾增加
-Xdebug -Xrunjdwp:transport=dt_socket,address=9200,server=y,suspend=n
9200是调试时连接的端口号
修改后为
JVM_ARG=" -server -Xmx1g -Xms512m -XX:NewSize=256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseParallelGC
-Xdebug -Xrunjdwp:transport=dt_socket,address=9200,server=y,suspend=n"
java源文件打断点,并修改 目标服务器的ip及端口号
程序启动时,就可以进行debug调试了,但有时会报错说 Source not found
此时需要导入源文件工程 Edit Source lookup -> javaproject->选中需要调试的工程