使用 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
你好,我看到了一些 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