使用 eclipse 调试 Weblogic 10.3.3.0 应用程序

Weblogic 10.3.3.0 application debugging with eclipse

你好,我看到了一些 11g 教程 Google 搜索:

http://saltnlight5.blogspot.com/2014/04/how-to-setup-remote-debug-with-weblogic.html

http://java.dzone.com/articles/how-setup-remote-debug

他们都指定添加如下内容: JAVA_OPTIONS="$JAVA_OPTIONS -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y"

我有两个问题:

其一,在我的工作中,我们有 domains/domainName/bin/setDomainEnv.sh 并且在同一个 "domainName" 目录中还有另一个名为 servers 的文件夹,上面有我们的一堆服务器。我不是基础设施方面的专家,但我正在寻找一种通过位于其中一台服务器上的 Eclipse 远程调试 Weblogic 上的应用程序的方法。将一台服务器及其应用程序与 Eclipse 同步而不影响所有服务器的最佳方法是什么(除非我误解了)。

其次,有没有办法通过 Weblogic 管理控制台进行设置?我试着四处寻找任何直观的东西,但没有什么特别突出的。

如果您使用 NodeManager 启动服务器,您应该能够将参数添加到 Weblogic 管理控制台中的 "Arguments",位于:

Environment -> Servers -> Your Server -> Configuration (tab) -> Server Start (sub-tab)

setDomainEnv - 设置 debugFlag="true" 并且您启动的每个服务器都将侦听指定的端口,允许远程调试连接。 在 Eclipse 中,select、Run > Debug Configuration 然后是 select Remote Java Application 选择您的服务器运行的主机,端口来自 setDomainEnv

  • 这将影响所有服务器,因此如果您在同一台主机上有两个 运行,您将遇到端口冲突。您可以做一些简单的事情,例如将 if 语句放入 setDomainEnv,这样调试只会针对特定的 SERVER_NAME
  • 打开

<domain>/servers - 这是 weblogic 为每个服务器缓存安全信息、应用程序信息、启动参数等的文件夹。你不应该直接在文件系统上操作它

您可能感兴趣的另一件事是 Oracle Enterprise Pack for Eclipse (OEPE)。它允许您直接从 Eclipse start/stop 服务器以及额外的调试支持。

来自我的示例 setDomainEnv.sh:

debugFlag="true"
export debugFlag
JAVA_DEBUG=""
export JAVA_DEBUG

if [ "${debugFlag}" = "true" ] ; then
    JAVA_DEBUG="-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8453,server=y,suspend=n -Djava.compiler=NONE"
    export JAVA_DEBUG

    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..."
    export JAVA_OPTIONS
fi