使用 JDeveloper 10.1.3.3 远程调试 WebLogic Server 10.0.1 上的 EJB
Oracle JDeveloper 方法文档
作者:Juan Camilo Ruiz 和 Dana Singleterry,Oracle
2008 年 7 月
简介
用户通过 JDeveloper IDE 能够使用远程调试器来远程调试部署到 WebLogic Server 的应用程序。在本方法文档中,我们将示例如何将 Java EE 应用程序 EJB 3.0 Session Facade 部署到 WebLogic Server 并在 JDeveloper 内进行调试。
在本方法文档中,我们将向您介绍如何在 JDeveloper 内创建到 WebLogic 服务器的连接、将 WebLogic 服务器设置为调试模式、在 JDeveloper 中打开提供的项目、将项目部署到 WebLogic 服务器、设置项目以执行远程调试以及如何运行远程调试会话。JDeveloper Java EE 示例应用程序可从 OTN 下载。您还将需要 JDeveloper(可从 OTN 获得)和 WebLogic Server(也可从 Oracle 获得)。
在 JDeveloper 中创建一个到 WebLogic Server 的应用服务器连接
注:当您执行从 JDeveloper 到 WebLogic 的部署时,请确保 HTTP Tunneling 属性已启用。在 WebLogic 控制台中,在 Servers > ServerName > Protocols >HTTP 下,选中 HTTP Tunneling 的复选框。(ServerName 指您的 WebLogic 服务器的名称)。
要让 JDeveloper 与 WebLogic 配合工作,它需要一个 weblogic.jar 文件的副本。该文件可在 [WLS 根目录]\weblogic1001\server\lib 找到。将该文件复制到 [jdev 根目录]\jdev\lib\ext 目录并重新启动 JDeveloper。
现在,我们创建一个从 JDeveloper 到您的 WebLogic 服务器的应用服务器连接。从 View 菜单中,选择 Connection Navigator。右键单击 Application Server 节点并选择 New Application Server Connection。按照对话框中的说明建立并测试到您的 WebLogic 服务器的连接。
建立连接后,您将能够直接执行从 JDeveloper 到 WebLogic 服务器的部署。
在 WebLogic Server 上启用调试
要让 JDeveloper 调试器可以调试部署到 WebLogic Server 的应用程序,服务器必须以调试模式启动。WebLogic Server 调试基于 Java 平台调试器体系结构 (JPDA)。注:我们使用域 wl_server 来部署和调试提供的应用程序。
要以调试模式启动 WebLogic Server,您将需要修改 <WLS 根目录>\wlserver_10.0\samples\domains\wl_server 目录中的 startWebLogic.cmd 脚本。<WLS 根目录> 是 WebLogic 10.0.1 的安装目录。
在 startWebLogic.cmd 脚本中,使用以下命令指定 JAVA OPTIONS:
set JAVA_OPTIONS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n
-XDebug 参数启用调试。-Xnoagent 参数禁用默认的 sun.tools.debug 调试代理。-Xrunjdwp 参数加载 JDWP 的 JPDA 参考实施。调试在端口 4000 上启用。JDWP 协议是通过远程调试器进行调试时所用的协议。
调用 startWebLogic.cmd 脚本以启动 WebLogic Server。
在 JDeveloper 中打开提供的 Java EE 项目并启用该项目以进行远程调试
如果您尚未下载提供的示例应用程序,请立即下载并将其解压缩到您常用的工作目录。解压缩后,您可以通过导航到应用程序解压缩到的目录、在 JDeveloper 中打开 WebLogicApp.jws 工作区以打开该项目。
默认情况下,远程调试器在 JDeveloper 中没有启用,因此,单击右键选择相应的应用程序项目 WLSEJB,并从上下文菜单中选择“Project Properties”。从“Project Properties”中选择“Run/Debug”,并为“Default Run Configurations”选择“Edit”。
在“Edit Run Configuration”中,为“Launch Settings”选中“Remote Debugging and Profiling”复选框。
在“Edit Run Configuration”中,选择“Debugger”配置选项中的“Remote”选项并将协议设置为“Attach to JPDA”。
将 EJB 3.0 应用程序部署到 WebLogic Server 并进行测试
既然 WebLogic 服务器已准备就绪,现在可以部署应用程序了。展开 WLSEJB 项目->Resources。找到 ejb1.deploy 文件并右键单击它,选择 deploy to->您先前创建的 WebLogic 服务器。这将启动一个部署流程,您可以通过 JDeveloper 日志窗口进行跟踪。
右键单击 ejb1.deploy 配置文件并从上下文菜单中选择“Deploy to”->您先前创建的 WebLogic 服务器,将 EJB 3.0 会话 Bean 部署到 WebLogic 服务器。这将使用您创建的应用服务器连接将您的应用程序部署到 WebLogic 服务器。
应用程序的成功部署应类似上图。
您必须先确保 Session Facade 客户端已具备了您的环境所要求的证书,然后才能测试部署的应用程序。验证您的 WebLogic Server 的以下内容设置得当。
(Context.SECURITY_PRINCIPAL,"<WebLogic Server 管理用户 ID>")
(Context.SECURITY_CREDENTIALS, "<WebLogic Server 管理口令>")
(Context.PROVIDER_URL, "t3://<您的域:端口>")
现在,您可以通过右键单击 WLSSessionFacadeClient 并从上下文菜单中选择“Run”来测试成功部署的应用程序。根据部署的 EJB 会话 Bean 运行客户端的结果如下所示:
运行 WLSSessionFacadeClient 的结果。调用 getAppServer1() 返回“WebLogic Server 10.0.1 JDeveloper 10.1.3.3 Integration”。调用 getAppServer2() 返回“Session EJB 3.0”。
运行远程调试会话
要调试我们部署到 WebLogic 服务器的会话 EJB,您需要在 WLSessionFacadeBean 中设置一个断点。
断点设置在 getAppServer1() 方法的返回值上。
现在,我们必须启动远程调试器。右键单击 WLSSessionFacadeBean 并选择“Start Remote Debugger”。
选择将应用程序部署到的主机以及相应的端口。
注意,断点已被激活。
右键单击 Session Facade 客户端并从上下文菜单中选择 Run 调试会话 EJB。
注意它进入会话 Bean 并停止于 getAppServer1() 方法内的返回值。
选择 Data 选项卡,查看当前数据。
您还可以在 Smart Data 选项卡中查看该实例的其他数据。
您可以按照我们在该方法文档中所做的进入并退出断点或恢复流程。
恢复流程,得到与未启用调试相同的结果。
要停止调试会话,单击红色方块图标并选择 detach 断开 JDeveloper 与 WebLogic Server 的连接。