使用 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 的連接。