首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在RHEL上作为服务运行时如何在调试模式下启动Tomcat 6

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

Stack Overflow用户
提问于 2012-12-08 05:17:55
回答 3查看 14.9K关注 0票数 4

这应该很简单,但是当Tomcat6在RHEL 6.1上作为服务运行时,我无法在Tomcat6上进行调试。

我将以下行添加到/etc/tomcat6/tomcat6.conf

代码语言:javascript
复制
JAVA_OPTS="${JAVA_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

当我用以下命令重新启动tomcat6服务时

代码语言:javascript
复制
service tomcat6 restart

命令行指示Tomcat关闭并启动,但它没有运行,当我查看catalina.out日志时,我看到

代码语言:javascript
复制
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作为服务运行时,它是否可以在调试模式下运行?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-08 05:41:47

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

真奇怪。

票数 1
EN

Stack Overflow用户

发布于 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实例对应的数据填充配置:

代码语言:javascript
复制
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中运行应用程序。

!成功调试模式将工作!

Congratzzzzz!!!!!

作者:sampath

票数 2
EN

Stack Overflow用户

发布于 2013-04-08 15:55:15

我也犯了同样的错误,原因是https://bugzilla.redhat.com/show_bug.cgi?id=899458。解决方法是从/usr/sbin/tomcat6中删除以下行

代码语言:javascript
复制
# 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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13771112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档