使用Eclipse进行Weblogic远程调试

9

我的Weblogic安装在Red Hat操作系统的机器上。

在startWebLogic.sh文件中,我添加了以下行: JAVA_OPTIONS="-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8888,server=y,suspend=n %JAVA_OPTIONS%"

当我尝试从Eclipse连接时,出现以下错误信息: "Failed to connect to remote VM. Connection refused. Connection refused: connect"

请问您能告诉我可能出错的地方吗?


2
你的Eclipse和Weblogic是否在不同的系统上?如果是,Redhat操作系统上的端口8888可能被阻止了吗? - Raghuram
嗨,Raghuram。感谢您的回复。是的,它在不同的系统中。我该如何检查它是否被阻止,如果被阻止,我该如何启用它? - mujeeb
如果您已经安装了nmap,则可以从您的Eclipse主机发出以下命令:格式为:nmap -p <端口> <服务器>,例如:nmap -p 8888 serverName.example.com - ftravers
1
请检查您的 setDomainEnv.sh 文件是否包含 debugFlag="true" 这一行。如果是,则表示您已经设置了 Weblogic 远程调试。 - despot
@despot 那个评论太简单了。事情并不止于此。用户应该查看脚本的其余部分,以查看它设置了哪个端口等。 - the_new_mr
1
@despot,谢谢,通过进行更改,它起作用了。它使用setDomainEnv.sh/setDomainEnv.cmd中提到的默认端口(即8453)。 - Narendra Pandey
5个回答

7
bin文件夹中的startWebLogic.sh文件中,在RHEL中添加此行代码。
-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8888,server=y,suspend=n 

在你找到这个字符串的地方:${JAVA_HOME}/bin/java

将上述行放在${JAVA_HOME}/bin/java之后即可。


1
这不会有任何影响,因为Mujeeb这样做是首选方式。你为什么要回答自己的问题? - Salandur
1
我在发帖后找到了答案。但是,我在回答中所解释的方式对我很有效。谢谢你的回复,非常感谢。 - mujeeb
这对我行得通。在Windows上有些不同,但总体而言,相同的过程可以按预期工作。 - rbwhitaker
1
@Salandur 顺便说一下:回答自己的问题是完全可以的,甚至是鼓励的。这甚至在 Stack Overflow 帮助中心中有所讨论:我能回答自己的问题吗? - informatik01

4

我知道可能有点晚了...但是当我尝试在已经运行一个调试会话的情况下运行eclipse调试会话时,我会遇到像这样的错误。


2

编辑<my_domain>/bin/setDomainEnv.sh文件,在顶部添加以下内容:

JAVA_OPTIONS="$JAVA_OPTIONS -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n" 

或者配置调试端口

DEBUG_PORT=${DEBUG_PORT:=8000} 
JAVA_OPTIONS="$JAVA_OPTIONS -Xrunjdwp:transport=dt_socket,address=$DEBUG_PORT,server=y,suspend=n"

更多信息可以在这里找到:
如何在WebLogic服务器和Eclipse中设置远程调试


0

可能有点晚,但希望能帮到某些人。

我使用 Eclipse 插件来管理 Weblogic 12c。我试图通过右键单击 -> 以调试模式启动来运行服务器,但一直收到“VM 连接被拒绝”的错误提示。然后我做了以下操作: 1- 编辑 startWeblogic.cmd 文件,加入

set JAVA_OPTIONS=%JAVA_OPTIONS% -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8453,server=y,suspend=n

2- 在我想要调试的项目上右键单击,选择 MYproject-->Debug As-->**在服务器上调试**,这样就可以正常工作了。不要在服务器上执行 右键单击-->以调试模式启动,而是在要调试的特定项目上执行。


0

你只能连接到正在运行的虚拟机,所以请确保你的服务器正在运行。

如果你在不同的系统上运行,很可能会有防火墙阻止连接。因此,请联系你的网络管理员确认是否为真。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接