如何在 Eclipse IDE(同一台机器)中远程调试在 Web 逻辑服务器上运行的企业应用程序

Posted

技术标签:

【中文标题】如何在 Eclipse IDE(同一台机器)中远程调试在 Web 逻辑服务器上运行的企业应用程序【英文标题】:How to remote debug an enterprise application running on web logic server in eclipse IDE(same machine) 【发布时间】:2015-09-28 18:48:04 【问题描述】:

我是 weblogic 应用程序服务器和远程调试的新手,已经阅读了几篇文章来设置远程调试。 一些文章建议编辑 setDomainEnv.cmd 文件,而另一些建议编辑 我的 WEBLOGIC_HOME\user_projects\domains\my_domain\bin 中的strong>startWeblogic.cmd 文件。 但是这两种解决方案都不适合我。下面列出了我尝试过的解决方案:

1) 编辑 setDomainEnv.cmd 文件

set JAVA_DEBUG=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=%DEBUG_PORT%,server=y,suspend=n -Djava.compiler=NONE
set JAVA_OPTIONS=%JAVA_OPTIONS% %enableHotswapFlag% -ea -da:com.bea... -da:javelin... -da:weblogic... -ea:com.bea.wli... -ea:com.bea.broker... -ea:com.bea.sbconsole...

文件中端口号设置为8543

if "%DEBUG_PORT%"=="" (
    set DEBUG_PORT=8453
)

2)编辑startWeblogic.cmd文件

我在文件顶部添加了以下行

-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8543,server=y,suspend=n  

然后在 Eclipse 中,当我运行调试配置(端口号:8543)时,我得到无法连接到远程 VM。拒绝连接。 连接被拒绝:连接

请告诉我1)远程调试如何工作?2)如何设置在 Eclipse 中使用 weblogic server 进行远程调试3)以上两种方法有什么区别?4)我需要在哪里在startWeblogic.cmd文件(顶部)中添加debug命令(-Xdebug....)5) 的目的是什么>weblogic 服务器中的setDomainEnv.cmd 文件 ?

提前致谢

【问题讨论】:

Web 逻辑服务器和 eclipse 在同一台机器上运行。我已将主机设置为 localhost Weblogic remote debugging using eclipse 的可能重复项 这个问题至少有 5 次以上重复出现在堆栈溢出中。这些都不起作用? ***.com/questions/3882203/…***.com/questions/18875252/eclipse-weblogic-debugging***.com/questions/21113673/…***.com/questions/28163130/… 我尝试了所有帖子,但仍然遇到相同的错误 - 无法连接到远程 VM。有些帖子建议编辑 startWeblogic.cmd 而其他帖子建议编辑 setDomainEnv.cmd ,这令人困惑。任何人都可以发布设置远程调试要遵循的一系列步骤。提前致谢。 其他帖子也没有回答我所有的问题 【参考方案1】:

我认为在启动 Weblogic 之前设置环境变量就足够了。启动 cmd 和启动 weblogic set debugFlag=true 之前。这应该使 weblogic 打开调试端口,该端口应该设置为一些默认值,例如 8453。如果您想更改它,也可以set DEBUG_PORT=8888 或任何其他空闲端口。

启动 Weblogic 并验证端口是否已打开。您可以为此使用cports 或ProcessExplorer 之类的工具(或事件netstat)。

如果调试端口未打开,请检查您是否在开发模式下运行 Weblogic,因为在生产模式下可以忽略debugFlag

在 Eclipse 中创建远程调试配置(请记住,此选项在工具栏旁边的 Run configuration 中不可用):

在屏幕截图的第 3 点中,选择您部署到要调试的 weblogic 的项目。

它不起作用会发布您遇到的问题。

【讨论】:

debugFlag 在 setDomainEnv.cmd 文件中设置为 true。此外,添加了以下行 - 如果 "%debugFlag%"=="true" ( set JAVA_DEBUG=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=%DEBUG_PORT%,server=y,suspend=n -Djava. compiler=NONE set JAVA_OPTIONS=%JAVA_OPTIONS% %enableHotswapFlag% -ea -da:com.bea... -da:javelin... -da:weblogic... -ea:com.bea.wli... -ea :com.bea.broker... -ea:com.bea.sbconsole... ) 否则(设置 JAVA_OPTIONS=%JAVA_OPTIONS% %enableHotswapFlag% -da )。然后在eclipse中,当我运行调试配置时,我无法连接到远程VM。连接被拒绝。 你使用什么版本的 Weblogic? 将 setDomainEnv.cmd 的内容发布到 somwhere。可以在一些外部服务上(pastebin?)。 感谢您调查我的问题。除了在我的帖子中添加上面显示的 2 行代码外,我没有更改 setDomainEnv.cmd 文件中的任何内容。我还应该发布文件的内容吗?

以上是关于如何在 Eclipse IDE(同一台机器)中远程调试在 Web 逻辑服务器上运行的企业应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在同一台机器上运行 2 个(或更多)Wildfly 实例?

从 IntelliJ 调试 Eclipse Wildfly

请告诉我如何将黑莓和android集成到同一个IDE中。

如何在 SSH 下远程使用 IDE 编译和调试

如何从远程机器访问 REST API?

如何在 Eclipse 中的远程计算机上构建 c++ 项目?