这应该很简单,但是当Tomcat6在RHEL 6.1上作为服务运行时,我无法在Tomcat6上进行调试。
我将以下行添加到/etc/tomcat6/tomcat6.conf
JAVA_OPTS="${JAVA_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"当我用以下命令重新启动tomcat6服务时
service tomcat6 restart命令行指示Tomcat关闭并启动,但它没有运行,当我查看catalina.out日志时,我看到
ERROR: Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options.
Error occurred during initialization of VM
agent library failed to init: jdwp无论是关机还是启动,尝试重新启动Tomcat6服务都会失败。我必须重启RHEL。
我以为Tomcat6在默认情况下是在调试模式下运行的,但是当我注释掉tomcat6.conf中的代码行并使用netstat重新启动时,-an没有显示任何使用端口8000或Tomcat使用的任何端口的内容。
当Tomcat6作为服务运行时,它是否可以在调试模式下运行?
发布于 2012-12-08 05:41:47
再重启一次似乎已经解决了这个问题。RHEL现在正在侦听端口8000,我可以附加一个远程调试器。
真奇怪。
发布于 2013-05-03 21:46:05
只需检查Catalina.sh文件中可用的端口号8000即可。并检查是否有任何进程在同一端口号8000中运行。
如果任何进程在同一端口上运行,则停止该进程并运行jpda。
检查同一地址中的环境变量。catalina.sh文件外壳脚本清楚地告诉它使用端口8000来执行它。
如果要更改端口地址,并在.bashrc文件中将其设置为
导出JPDA_ADDRESS=8009
并执行以下命令
$ ./catalina.sh jpda运行(用于普通方法)
如果您已经使用安全管理器运行,那么
$ ./catalina.sh jpda运行-security
然后转到Eclipse
转到-> 调试配置
将Eclipse配置为远程调试
首先,我们必须打开或导入包含要调试的应用程序源代码的项目。然后,我们必须从Eclipse中设置调试:
1)点击工具栏中“调试”按钮(有缺陷的按钮)的右侧(箭头朝上),点击“Debug configurations…”或在菜单中运行>调试配置…然后将打开一个具有不同调试配置的新窗口。
调试配置
2)在左侧菜单中选择“Remote Java Application”,然后按下“New launch configuration”按钮(左上角带有文件夹图标的按钮)。
新的调试配置
3)使用我们的Tomcat实例对应的数据填充配置:
Project: The project we want to debug: it has to contain the source code for the application we want to debug.
Connection Type: Standard (Socket Attach).
Host: IP of the server in which is Tomcat installed.
Port: Port indicated to JVM in address parameter. Port 8000 in our exampleEclipse不显示任何内容。eclipse中没有显示任何更改。
只需在eclipse中需要的地方设置断点,就可以在tomcat中运行应用程序。
!成功调试模式将工作!
Congratzzzzz!!!!!
作者:sampath
发布于 2013-04-08 15:55:15
我也犯了同样的错误,原因是https://bugzilla.redhat.com/show_bug.cgi?id=899458。解决方法是从/usr/sbin/tomcat6中删除以下行
# Get the tomcat config (use this for environment specific settings)
if [ -z "${TOMCAT_CFG}" ]; then
TOMCAT_CFG="/etc/tomcat6/tomcat6.conf"
fi
if [ -r "$TOMCAT_CFG" ]; then
. $TOMCAT_CFG
fi您的问题可能是不同的(否则没有理由重新启动),但我留下了这篇文章,以便搜索错误消息的人可以找到它。
https://stackoverflow.com/questions/13771112
复制相似问题