在RHEL上作为服务运行时,如何在调试模式下启动Tomcat 6

在RHEL上作为服务运行时,如何在调试模式下启动Tomcat 6,tomcat,tomcat6,rhel6,Tomcat,Tomcat6,Rhel6,这应该很容易,但当Tomcat6作为RHEL6.1上的服务运行时,我无法在Tomcat6上进行调试 我在/etc/tomcat6/tomcat6.conf中添加了以下行 JAVA_OPTS="${JAVA_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n" 当我使用重新启动tomcat 6服务时 service tomcat6 restart 命令行指示Tomcat关闭并启动,但它没有运行,

这应该很容易,但当Tomcat6作为RHEL6.1上的服务运行时,我无法在Tomcat6上进行调试

我在/etc/tomcat6/tomcat6.conf中添加了以下行

JAVA_OPTS="${JAVA_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
当我使用重新启动tomcat 6服务时

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使用的任何端口的任何内容


Tomcat 6作为服务运行时是否可以在调试模式下运行?

再重新启动一次似乎就解决了这个问题。RHEL现在正在监听端口8000,我可以附加一个远程调试器


奇怪。

我也犯了同样的错误,原因是。解决方法是从
/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

您的问题可能不同(否则就没有重新启动的理由),但我留下这个,以便搜索错误消息的人可以找到它。

只需检查Catalina.sh文件中可用的端口号8000。并检查是否有任何进程在同一端口8000中运行

如果有任何进程在同一端口上运行,则停止该进程并运行jpda

检查同一地址中的env变量。catalina.sh文件shell脚本清楚地表明它使用端口8000来执行它

如果要更改端口地址并在.bashrc文件中设置 作为

导出JPDA_地址=8009

然后执行命令

$。/catalina.sh jpda run(用于普通方法)

如果您已与安全管理器一起运行,则

$。/catalina.sh jpda运行-安全性

然后转到Eclipse

转到->调试配置

将Eclipse配置为远程调试

首先,我们必须打开或导入包含要调试的应用程序源代码的项目。之后,我们必须从Eclipse设置调试:

1) 单击工具栏中“调试”按钮(带有错误的按钮)的右侧(箭头朝上),然后单击“调试配置…”或在菜单“运行”>“调试配置…”中,将打开具有不同调试配置的新窗口

调试配置

2) 选择左侧菜单中的“远程Java应用程序”,然后按“新建启动配置”按钮(文件夹图标位于左上角的按钮)

新的调试配置

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 example
Eclipse不显示任何内容。eclipse中没有显示任何更改

只需在eclipse中设置所需的断点,然后在tomcat中运行应用程序

!!!!!!成功调试模式将工作

恭喜你


通过sampath

ps auxw | grep java-它打印什么?当重新启动失败时,它没有打印任何内容(Duh)。第二次重新启动似乎使事情正常。