我似乎无法通过Eclipse调试Tomcat应用程序。 我已经设置:
CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
然后我运行bin/catalina.sh
,在那里我看到输出说它正在监听端口8000
的dt_socket
。 但是每当我尝试在Eclipse中连接到端口8000
(通过在远程Java应用程序菜单中添加一个条目),它会抱怨连接被拒绝。 有什么建议吗?
我似乎无法通过Eclipse调试Tomcat应用程序。 我已经设置:
CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
然后我运行bin/catalina.sh
,在那里我看到输出说它正在监听端口8000
的dt_socket
。 但是每当我尝试在Eclipse中连接到端口8000
(通过在远程Java应用程序菜单中添加一个条目),它会抱怨连接被拒绝。 有什么建议吗?
你能检查一下这个是否可行吗?
JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"
catalina.sh jpda start
set JPDA_OPTS=-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
catalina.bat jpda start
- Lee Chee Kiam我花了一些时间来获取正确的信息。
下面是详细的步骤信息。
环境:Windows 7
Tomcat版本:7.0
IDE:Eclipse
要添加的配置以启用Tomcat内的远程调试是:
-Xdebug
-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
我不建议在非Windows环境下使用上述配置。要添加上述配置,请双击服务器视图中可用的Tomcat服务器,找到以下屏幕截图。
现在将上述运行环境配置添加到Tomcat中。请查看以下截图。
现在转到编辑启动配置属性的Arugments选项卡,如下所示。
进入VM arguments部分,添加以下几行。
-Xdebug
-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
现在点击Eclipse工具栏上的调试按钮。
在Debug配置中,找到“Remote Java Application”并双击它。
在名称字段中输入任何你喜欢的名称。
从项目字段使用浏览按钮选择要执行远程调试的项目。
主机名就是主机地址。这里我是在本地工作,所以是“localhost”。
最后,端口列的值应为8000。除了名称和项目文本字段外,其他两个列主机和端口将由Eclipse自己填写,如果没有,请确保您有与提到的相同的值。检查屏幕截图以获取信息。
现在右键单击服务器控制台中的TomcatServer,选择上下文菜单中的“添加和删除”。从此对话框中,您可以将项目添加到服务器。
现在运行Tomcat服务器。
现在从Debug工具运行TomCatDebugConfiguration。
最后打开内部或外部浏览器并运行您的项目。如果执行控制到达断点,则Eclipse将提示进行调试视角。
catalina.bat
或 .sh
文件的位置(也就是 {CATALINA_BASE}/bin 目录),编辑该目录下的文件(如果没有则创建):setenv.bat/.sh
请添加以下行:
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
这就是您需要做的全部,您不需要编辑catalina.bat
(或.sh
)文件。
请查看catalina.bat
或catalina.sh
中的注释。
对于您特定的环境/情况,您可能需要调整语法。例如,在Windows环境下,如果已经定义了CATALINA_OPTS,则可以像这样做:
set CATALINA_OPTS=%CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,address=8088,server=y,suspend=n
在Eclipse中进行调试:
运行->调试配置...->远程Java应用程序->新建
并指定名称、您要调试的项目、以及上面指定的Tomcat主机和调试端口。
bin
目录下的 setenv.bat
文件中加入以下代码行:set JPDA_OPTS= -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n
,使用 startup.bat
启动 Tomcat。 - Paramvir Singh Karwalcatalina.bat
文件中以下内容。
步骤1:CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
步骤2:JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"
步骤3:像下面这样从命令提示符运行Tomcat:catalina.sh jpda start
步骤4:然后在Eclipse中创建调试配置
项目名称
。标准(Socket Attach)
localhost
8000
(或任何端口号,但其他地方也应该相同)。请注意,现在的地址为10.1.1.33:8000JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=10.1.1.33:8000,server=y,suspend=n"
catalina.sh jpda start
此命令适用于Windows和Linux - 您只需要使用netstat -an
find
(Windows)或grep
(Linux)筛选出端口即可。让我分享一种简单的方法,如何在Windows中使用eclipse启用tomcat7的远程调试模式。
步骤1:打开bin/startup.bat文件
步骤2:在JDPA选项下添加以下行(应该是文件的起始行)以进行调试。
set JPDA_ADDRESS=8000
set JPDA_TRANSPORT=dt_socket
call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%
instead of line
call "%EXECUTABLE%" start %CMD_LINE_ARGS%
第四步:运行bin>startup.bat(这样你的Tomcat服务器就以远程模式运行,并使用端口8000)。
第五步:接下来让我们通过Eclipse IDE与远程客户端连接源项目。
第六步:在Eclipse IDE中转到“调试配置”。
第七步:单击“远程Java应用程序”,然后单击“新建”。
第八步:在“连接”选项卡中设置参数值。
project= your source project
connection Type: standard (socket attached)
host: localhost
port:8000
步骤9:点击应用并调试。
这样,您的Eclipse远程客户端就与正在运行的Tomcat服务器(调试模式)连接成功了。
希望这种方法能对您有所帮助。
祝好。
./catalina.sh jpda start
(分叉)或 ./catalina.sh jpda run
(不分叉,帮助中未提及)。 这里提到的所有选项默认为正常值。修改catalina.bat文件以添加
set JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"
并且
CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
可选:在运行startup.bat时默认启用调试模式,请添加以下行:
call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%
Eclipse或STS选择调试配置,右键单击 -> 新建
connection type -> Standard socket Attach
Port -> 8000 (as given in the CATALINA_OPTS)
Host -> localhost or IP address
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:
export JPDA_TRANSPORT=dt_socket
export JPDA_ADDRESS=8000
export JPDA_SUSPEND=n
JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"
最后,使用如下命令:
catalina.sh jpda start
祝好
set "JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"