使用 JDeveloper 10.1.3.3 遠(yuǎn)程調(diào)試 WebLogic Server 10.0.1 上的 EJB
Oracle JDeveloper 方法文檔
作者:Juan Camilo Ruiz 和 Dana Singleterry,Oracle
2008 年 7 月
簡介
用戶通過 JDeveloper IDE 能夠使用遠(yuǎn)程調(diào)試器來遠(yuǎn)程調(diào)試部署到 WebLogic Server 的應(yīng)用程序。在本方法文檔中,我們將示例如何將 Java EE 應(yīng)用程序 EJB 3.0 Session Facade 部署到 WebLogic Server 并在 JDeveloper 內(nèi)進(jìn)行調(diào)試。
在本方法文檔中,我們將向您介紹如何在 JDeveloper 內(nèi)創(chuàng)建到 WebLogic 服務(wù)器的連接、將 WebLogic 服務(wù)器設(shè)置為調(diào)試模式、在 JDeveloper 中打開提供的項(xiàng)目、將項(xiàng)目部署到 WebLogic 服務(wù)器、設(shè)置項(xiàng)目以執(zhí)行遠(yuǎn)程調(diào)試以及如何運(yùn)行遠(yuǎn)程調(diào)試會話。JDeveloper Java EE 示例應(yīng)用程序可從 OTN 下載。您還將需要 JDeveloper(可從 OTN 獲得)和 WebLogic Server(也可從 Oracle 獲得)。
在 JDeveloper 中創(chuàng)建一個(gè)到 WebLogic Server 的應(yīng)用服務(wù)器連接
注:當(dāng)您執(zhí)行從 JDeveloper 到 WebLogic 的部署時(shí),請確保 HTTP Tunneling 屬性已啟用。在 WebLogic 控制臺中,在 Servers > ServerName > Protocols >HTTP 下,選中 HTTP Tunneling 的復(fù)選框。(ServerName 指您的 WebLogic 服務(wù)器的名稱)。
要讓 JDeveloper 與 WebLogic 配合工作,它需要一個(gè) weblogic.jar 文件的副本。該文件可在 [WLS 根目錄]\weblogic1001\server\lib 找到。將該文件復(fù)制到 [jdev 根目錄]\jdev\lib\ext 目錄并重新啟動 JDeveloper。
現(xiàn)在,我們創(chuàng)建一個(gè)從 JDeveloper 到您的 WebLogic 服務(wù)器的應(yīng)用服務(wù)器連接。從 View 菜單中,選擇 Connection Navigator。右鍵單擊 Application Server 節(jié)點(diǎn)并選擇 New Application Server Connection。按照對話框中的說明建立并測試到您的 WebLogic 服務(wù)器的連接。
建立連接后,您將能夠直接執(zhí)行從 JDeveloper 到 WebLogic 服務(wù)器的部署。
在 WebLogic Server 上啟用調(diào)試
要讓 JDeveloper 調(diào)試器可以調(diào)試部署到 WebLogic Server 的應(yīng)用程序,服務(wù)器必須以調(diào)試模式啟動。WebLogic Server 調(diào)試基于 Java 平臺調(diào)試器體系結(jié)構(gòu) (JPDA)。注:我們使用域 wl_server 來部署和調(diào)試提供的應(yīng)用程序。
要以調(diào)試模式啟動 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 參數(shù)啟用調(diào)試。-Xnoagent 參數(shù)禁用默認(rèn)的 sun.tools.debug 調(diào)試代理。-Xrunjdwp 參數(shù)加載 JDWP 的 JPDA 參考實(shí)施。調(diào)試在端口 4000 上啟用。JDWP 協(xié)議是通過遠(yuǎn)程調(diào)試器進(jìn)行調(diào)試時(shí)所用的協(xié)議。
調(diào)用 startWebLogic.cmd 腳本以啟動 WebLogic Server。
在 JDeveloper 中打開提供的 Java EE 項(xiàng)目并啟用該項(xiàng)目以進(jìn)行遠(yuǎn)程調(diào)試
如果您尚未下載提供的示例應(yīng)用程序,請立即下載并將其解壓縮到您常用的工作目錄。解壓縮后,您可以通過導(dǎo)航到應(yīng)用程序解壓縮到的目錄、在 JDeveloper 中打開 WebLogicApp.jws 工作區(qū)以打開該項(xiàng)目。
默認(rèn)情況下,遠(yuǎn)程調(diào)試器在 JDeveloper 中沒有啟用,因此,單擊右鍵選擇相應(yīng)的應(yīng)用程序項(xiàng)目 WLSEJB,并從上下文菜單中選擇“Project Properties”。從“Project Properties”中選擇“Run/Debug”,并為“Default Run Configurations”選擇“Edit”。
在“Edit Run Configuration”中,為“Launch Settings”選中“Remote Debugging and Profiling”復(fù)選框。
在“Edit Run Configuration”中,選擇“Debugger”配置選項(xiàng)中的“Remote”選項(xiàng)并將協(xié)議設(shè)置為“Attach to JPDA”。
將 EJB 3.0 應(yīng)用程序部署到 WebLogic Server 并進(jìn)行測試
既然 WebLogic 服務(wù)器已準(zhǔn)備就緒,現(xiàn)在可以部署應(yīng)用程序了。展開 WLSEJB 項(xiàng)目->Resources。找到 ejb1.deploy 文件并右鍵單擊它,選擇 deploy to->您先前創(chuàng)建的 WebLogic 服務(wù)器。這將啟動一個(gè)部署流程,您可以通過 JDeveloper 日志窗口進(jìn)行跟蹤。
右鍵單擊 ejb1.deploy 配置文件并從上下文菜單中選擇“Deploy to”->您先前創(chuàng)建的 WebLogic 服務(wù)器,將 EJB 3.0 會話 Bean 部署到 WebLogic 服務(wù)器。這將使用您創(chuàng)建的應(yīng)用服務(wù)器連接將您的應(yīng)用程序部署到 WebLogic 服務(wù)器。
應(yīng)用程序的成功部署應(yīng)類似上圖。
您必須先確保 Session Facade 客戶端已具備了您的環(huán)境所要求的證書,然后才能測試部署的應(yīng)用程序。驗(yàn)證您的 WebLogic Server 的以下內(nèi)容設(shè)置得當(dāng)。
(Context.SECURITY_PRINCIPAL,"<WebLogic Server 管理用戶 ID>")
(Context.SECURITY_CREDENTIALS, "<WebLogic Server 管理口令>")
(Context.PROVIDER_URL, "t3://<您的域:端口>")
現(xiàn)在,您可以通過右鍵單擊 WLSSessionFacadeClient 并從上下文菜單中選擇“Run”來測試成功部署的應(yīng)用程序。根據(jù)部署的 EJB 會話 Bean 運(yùn)行客戶端的結(jié)果如下所示:
運(yùn)行 WLSSessionFacadeClient 的結(jié)果。調(diào)用 getAppServer1() 返回“WebLogic Server 10.0.1 JDeveloper 10.1.3.3 Integration”。調(diào)用 getAppServer2() 返回“Session EJB 3.0”。
運(yùn)行遠(yuǎn)程調(diào)試會話
要調(diào)試我們部署到 WebLogic 服務(wù)器的會話 EJB,您需要在 WLSessionFacadeBean 中設(shè)置一個(gè)斷點(diǎn)。
斷點(diǎn)設(shè)置在 getAppServer1() 方法的返回值上。
現(xiàn)在,我們必須啟動遠(yuǎn)程調(diào)試器。右鍵單擊 WLSSessionFacadeBean 并選擇“Start Remote Debugger”。
選擇將應(yīng)用程序部署到的主機(jī)以及相應(yīng)的端口。
注意,斷點(diǎn)已被激活。
右鍵單擊 Session Facade 客戶端并從上下文菜單中選擇 Run 調(diào)試會話 EJB。
注意它進(jìn)入會話 Bean 并停止于 getAppServer1() 方法內(nèi)的返回值。
選擇 Data 選項(xiàng)卡,查看當(dāng)前數(shù)據(jù)。
您還可以在 Smart Data 選項(xiàng)卡中查看該實(shí)例的其他數(shù)據(jù)。
您可以按照我們在該方法文檔中所做的進(jìn)入并退出斷點(diǎn)或恢復(fù)流程。
恢復(fù)流程,得到與未啟用調(diào)試相同的結(jié)果。
要停止調(diào)試會話,單擊紅色方塊圖標(biāo)并選擇 detach 斷開 JDeveloper 與 WebLogic Server 的連接。