摘要Oracle JDeveloper 10g IDE是功能全面的J2EE IDE,可用于在BEA WebLogic Server 8.1上開發(fā)和部署J2EE應(yīng)用程序。在本教程中,將在Jdeveloper中開發(fā)一個簡單的JSP Web應(yīng)用程序,并部署到WebLogic Server 8.1實例。本教程還將示范如何使用JDeveloper IDE調(diào)試應(yīng)用程序。 概述JDeveloper IDE支持BEA WebLogic Server上J2EE應(yīng)用程序的開發(fā)。JDeveloper 10.1.2支持WebLogic Server版本6.x、7.x和8.x。JDeveloper 10.1.3(剛剛發(fā)布)支持版本8.x和9.x。JDeveloper還提供遠(yuǎn)程調(diào)試器,用以調(diào)試部署到WebLogic Server的應(yīng)用程序。在JDeveloper IDE中開發(fā)的J2EE應(yīng)用程序可能包含EJB、JSP、Struts、Java類、applet和servlet。在本教程中,將在JDeveloper 10g IDE中開發(fā)一個Model-View(模型-視圖)J2EE應(yīng)用程序(包含會話EJB和JSP客戶端),并部署到WebLogic Server 8.1實例。 初步設(shè)置假定您已經(jīng)安裝了WebLogic Server 8.1。使用Configuration Wizard(配置向?qū)В?,?chuàng)建一個WebLogic Server域名。 安裝JDeveloper 10g (10.1.2) IDE。將<Weblogic81>\server\lib\weblogic.jar復(fù)制到目錄<JDeveloper>\jdev\lib\ext。<WebLogic81>是安裝WebLogic Server 8.1的目錄。<JDeveloper>是安裝JDeveloper 10g的目錄。 現(xiàn)在就可以開始了! 配置到WebLogic Server的連接在本節(jié)中,我們將配置從JDeveloper IDE到WebLogic Server的連接。首先,啟動WebLogic Server和JDeveloper IDE。 在JDeveloper控制臺中,選擇Connections選項卡以配置到WebLogic Server的連接。Connection>Application Server節(jié)點的作用是配置到應(yīng)用程序服務(wù)器的連接。右擊Application Server節(jié)點,然后選擇New Application Server Connection。
這將啟動Create Application Server Connection Wizard。在Type框中指定Connection Name,并選擇Connection Type為WebLogic Server 8.x。也支持早期版本W(wǎng)ebLogic Server 6.x和7.x。 單擊Next。
在Authentication框中,指定用戶名和密碼,然后單擊Next。在Connection框中,指定WebLogic Server主機名稱、端口、目標(biāo)服務(wù)器和到weblogic.jar的路徑。單擊Next。
在Test框中,選擇Test Connection按鈕以測試到WebLogic Server的連接。如果建立了到服務(wù)器的連接,就會顯示Success消息。單擊Finish按鈕?,F(xiàn)在將配置到WebLogic Server 8.1的連接,一個用于此連接的節(jié)點將被添加到Connections-Navigator。
現(xiàn)在已經(jīng)運行了WebLogic Server和JDeveloper IDE,而JDeveloper也能夠與WebLogic Server實例進行交互。 將應(yīng)用程序部署到WebLogic Server在本節(jié)中,我們將在JDeveloper IDE中開發(fā)一個J2EE應(yīng)用程序,并將它部署到WebLogic Server。此J2EE應(yīng)用程序包含會話EJB和用于此會話EJB的JSP客戶端。首先,在JDeveloper中創(chuàng)建一個應(yīng)用程序工作區(qū)和項目。選擇File>New,然后在New Gallery框中選擇General>Application Workspace。單擊OK按鈕。 在Create Application Workspace框中,指定應(yīng)用程序名稱和目錄名稱,然后選擇Web Application [JSP, EJB]作為應(yīng)用程序模板。單擊OK按鈕。一個應(yīng)用程序工作區(qū)將被添加到Applications-Navigator,而Model和View項目節(jié)點將被添加到工作區(qū)。
下一步,創(chuàng)建會話EJB。右擊Model項目節(jié)點,然后選擇New。在New Gallery框中,在列出的Categories中選擇Business Tier>Enterprise JavaBeans (EJB),然后在列出的項目中選擇Session Bean。單擊OK按鈕。
Create Enterprise JavaBean Wizard將啟動。在Select EJB Version框中,選擇Enterprise JavaBeans 2.0作為EJB版本。單擊Next按鈕。在EJB Name and Options框中,指定EJB Name、Session Type和Transaction Type(或者選擇默認(rèn)方式),然后單擊Next按鈕。在Class Definitions框中,指定Bean Class(或者選擇默認(rèn)方式)。單擊Next按鈕。在EJB Home and Component Interfaces框中,選擇Include Local Interfaces項,然后指定Local Home Interface和Local Interface(或者選擇默認(rèn)方式)。單擊Next按鈕。在Summary頁面,會列出將由Create Enterprise JavaBean Wizard生成的bean類、本地主頁接口和本地接口類。單擊Finish按鈕,以生成會話EJB類。此會話EJB將被添加到Model項目。還會生成ejb-jar.xml部署描述符。 對于WebLogic Server應(yīng)用程序,不需要orion-ejb-jar.xml部署,應(yīng)該從META-INF目錄刪除它。需要添加weblogic-ejb-jar.xml部署描述符。為此,請右擊Model項目節(jié)點,然后選擇New。在New Gallery框中,在列出的Categories中選擇General>Deployment Descriptors,然后在列出的項目中選擇weblogic-ejb-jar.xml。
此weblogic-ejb-jar.xml部署描述符將被添加到Model項目。修改weblogic-ejb-jar.xml部署描述符。使用local-jndi-name替換jndi-name。
下一步,將業(yè)務(wù)方法添加到會話EJB。在Application-Navigator中選擇session EJB節(jié)點。 在EJB Module Editor中選擇Enterprise Java Beans>Session EJB>Methods。在Method Category選擇列表中,選擇Business methods,然后單擊Add按鈕。在Business Method Details框中,指定方法名稱、返回類型和方法參數(shù)。由于示例會話EJB具有本地接口,請選擇Expose through Local Interface選項。單擊OK按鈕。指定的方法將被添加到會話EJB。單擊EJB Module Editor中的OK按鈕。
在Applications-Navigator中,選擇session EJB節(jié)點,然后在Structure框中,選擇SessionEJBBean。在SessionEJBBean類的getAppServer()方法中,添加一個返回的String。
業(yè)務(wù)方法getAppServer()通過SessionEJBLocal接口被暴露。下一步,創(chuàng)建用于會話EJB的JSP客戶端。右擊Applications-Navigator中的View項目節(jié)點,然后選擇New。在New Gallery框中,在Categories中選擇Web Tier>JavaServer Pages,然后在列出的項目中選擇JSP Page。在Create JSP框中,指定用于JSP的文件名稱和目錄名稱。此JSP將被添加到View項目。 我們希望這個新建JSP來調(diào)用Model項目中的會話EJB的getAppServer()業(yè)務(wù)方法。雖然這不是完美的MVC行為,但是本教程的目的是探索IDE的特性,而不是寫出優(yōu)秀的代碼。需要在View項目的類路徑中添加J2EE庫。
選擇Tools>Project Properties,以將J2EE庫添加到View項目。在Project Properties框中,在列出的Categories中選擇Profiles>Development>Libraries。將J2EE庫從Available Libraries框發(fā)送到Selected Libraries框中。J2EE庫擁有javax.ejb包Enterprise JavaBeans類和接口。
在客戶端JSP中,從會話EJB JNDI獲得SessionEJBLocalHome對象。從SessionEJBLocalHome對象創(chuàng)建SessionEJBLocal對象,并調(diào)用getAppServer()方法: InitialContext ctx=new InitialContext(); Object objref = ic.lookup("SessionEJB"); model.SessionEJBLocalHome sessionEJBHome=(model.SessionEJBLocalHome)objref; model.SessionEJBLocal sessionEJB=sessionEJBHome.create(); out.println(sessionEJB.getAppServer()); 用于會話EJB的weblogic.jsp客戶端JSP如下圖所示:
我們已經(jīng)創(chuàng)建了一個會話EJB和一個用于會話EJB的JSP。下一步,將創(chuàng)建用于會話EJB的EJB JAR文件。右擊Applications-Navigator中的Model項目節(jié)點,然后在列出的Categories中選擇General>Deployment Profiles。在列出的Items中選擇EJB JAR File。單擊OK按鈕。
在Create Deployment Profile框中,選擇默認(rèn)部署配置文件名稱和目錄,然后單擊OK按鈕。在EJB Jar Deployment Profile Properties框中,選擇為EJB JAR File、Enterprise Application Name指定的默認(rèn)值ejb1,然后單擊OK按鈕。
會話EJB的部署配置文件將被添加到Model項目。
下一步,創(chuàng)建用于JSP的WAR文件。右擊View項目節(jié)點,然后選擇New。在New Gallery框中,在列出的Categories中選擇General>Deployment Profiles,然后在列出的Items中選擇WAR File。單擊OK按鈕。在Create Deployment Profile框中,指定部署配置文件名稱和目錄名稱(或者選擇默認(rèn)值),然后單擊OK按鈕。用于JSP的部署配置文件將被添加到View項目。
在Project Properties中設(shè)置用于Web應(yīng)用程序的J2EE Web Context根目錄。選擇Tools>Project Properties。在Project Properties框中,選擇Common>J2EE節(jié)點。在J2EE Web Context Root字段中指定上下文根目錄。對于示例Web應(yīng)用程序,指定weblogic-context-root作為上下文根目錄。下一步,指定Model項目和View項目之間的依賴關(guān)系。右擊View項目節(jié)點,然后選擇New。在New Gallery框中,選擇Common>Dependencies節(jié)點。在Model項目中選擇EJB JAR部署配置文件,然后單擊OK按鈕。
下一步,為Model-View應(yīng)用程序創(chuàng)建應(yīng)用程序部署配置文件。右擊View項目節(jié)點,然后選擇New。在New Gallery框中,在列出的Categories中選擇General>Deployment Profiles,然后在列出的Items中選擇EAR File。單擊OK按鈕。在Create Deployment Profile框中,指定部署配置文件名稱和目錄(或者選擇默認(rèn)值),然后單擊OK按鈕。在EAR Deployment Profile Properties框中,選擇Application Assembly節(jié)點。選擇Web應(yīng)用程序J2EE模塊和EJB應(yīng)用程序模塊。單擊OK按鈕。
此應(yīng)用程序部署配置文件節(jié)點將被添加到Applications-Navigator。下一步,將J2EE應(yīng)用程序部署到已經(jīng)啟動的WebLogic Server。右擊應(yīng)用程序部署配置文件節(jié)點,然后選擇Deploy to>AppServerConnection1。AppServerConnection1是到WebLogic Server的連接。
此J2EE應(yīng)用程序?qū)⒈徊渴鸬絎ebLogic Server。使用URL:http://localhost:7001/console來訪問WebLogic Server管理控制臺。J2EE應(yīng)用程序列在Deployments>Applications節(jié)點中。
下一步,使用URL: http://localhost::7001/weblogic-context-root/weblogic.jsp運行WebLogic Server中用于會話EJB的客戶端JSP。會話EJB的getAppServer()方法將在該JSP中被調(diào)用,而此方法返回的String值將被輸出到瀏覽器。
遠(yuǎn)程調(diào)試WebLogic應(yīng)用程序JDeveloper IDE具有用于使用遠(yuǎn)程調(diào)試器來遠(yuǎn)程調(diào)試部署到WebLogic Server的應(yīng)用程序的自動配置。在本節(jié)中,我們將在JDeveloper中調(diào)試部署到WebLogic Server的示例J2EE應(yīng)用程序。為使用JDeveloper debugger調(diào)試部署到WebLogic Server的應(yīng)用程序,請以調(diào)試模式啟動服務(wù)器。WebLogic Server調(diào)試基于Java平臺調(diào)試器架構(gòu)(Java Platform Debugger Architecture,JPDA)。對于在上一節(jié)中部署的J2EE應(yīng)用程序,服務(wù)器并未在調(diào)試模式下啟動。從WebLogic Server卸載上一節(jié)中部署的J2EE應(yīng)用程序。服務(wù)器將以調(diào)試模式重新啟動。要以調(diào)試模式啟動WebLogic Server,請修改<weblogic81>\server\bin目錄下的startWLS腳本。<weblogic81>是安裝WebLogic Server 8.1的目錄。在startWLS腳本中,使用以下代碼指定JAVA_OPTIONS: set JAVA_OPTIONS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=4000,suspend=n -XDebug參數(shù)啟用調(diào)試。-Xnoagent參數(shù)禁用默認(rèn)sun.tools.debug調(diào)試器。-Xrunjdwp參數(shù)加載JDWP的JPDA參考執(zhí)行實例。JDWP協(xié)議是用于使用遠(yuǎn)程調(diào)試器進行調(diào)試的協(xié)議。以調(diào)試模式啟動WebLogic Server。在默認(rèn)情況下,JDeveloper IDE中的遠(yuǎn)程調(diào)試器是不可用的。通過選擇Project Properties框中的Profiles>Development>Debugger>Remote節(jié)點,在JDeveloper中設(shè)置遠(yuǎn)程調(diào)試特性。選擇Remote Debugging選項,然后選擇Attach to JPDA單選按鈕。
要使用遠(yuǎn)程調(diào)試器調(diào)試JSP,請將debug param添加到weblogic.xml部署描述符。在View項目中的weblogic.xml部署描述符中,將debug param值設(shè)為true: <weblogic-web-app> <reference-descriptor/> <jsp-descriptor> <jsp-param> <param-name>debug</param-name> <param-value>true</param-value> </jsp-param> </jsp-descriptor> </weblogic-web-app>
下一步,將斷點添加到JSP。選擇View>Debugger>Breakpoints。
將顯示Breakpoints框。默認(rèn)支持的斷點在Breakpoints框中被列出。要添加新斷點,請右擊Breakpoints框,然后選擇New Breakpoint。將顯示New Breakpoint框。作為示例,選擇Exception類NullPointerException。
NullPointerException斷點將被添加到Breakpoints框。為了演示遠(yuǎn)程調(diào)試,將一個錯誤添加到JSP。使用 InitialContext ctx=null; 替換 InitialContext ctx=new InitialContext(); 設(shè)置InitialContext為空,將在JSP應(yīng)用程序中生成NullPointerException。像上一節(jié)一樣,生成Web應(yīng)用程序的部署配置文件和J2EE應(yīng)用程序的部署配置文件。像上一節(jié)一樣,將J2EE應(yīng)用程序部署到WebLogic Server。使用URL:http://localhost:7001/console來訪問WebLogic Server Administration Console。 下一步,啟動遠(yuǎn)程調(diào)試器。右擊View項目,然后選擇Remote Debugger。
在Debugger框中,指定本地主機作為Host(主機),4000作為Port(端口)。端口4000在-Xrunjdwp參數(shù)中指定,該參數(shù)用于以調(diào)試模式啟動WebLogic Server。
遠(yuǎn)程調(diào)試器將啟動并連接到WebLogic Server。
在WebLogic Server管理控制臺中,使用以下URL調(diào)用存在錯誤(InitialContext被設(shè)置為空)的weblogic.jsp JSP: http://localhost:7001/weblogic-context-root/weblogic.jsp 調(diào)試器會發(fā)現(xiàn)異常。如果調(diào)試器未能找到JSP源文件,可能會顯示Unable to Find Source File框。 使用open file dialog單選按鈕選擇Let me find the file myself。在View/public_html目錄中選擇weblogic.jsp。生成NullPointerException的代碼將在JSP中突出顯示。
在JDeveloper IDE中使用不同的調(diào)試選項來調(diào)試JSP應(yīng)用程序。在本節(jié)中,我們通過JDeveloper遠(yuǎn)程調(diào)試器調(diào)試了從JDeveloper IDE部署到WebLogic Server的J2EE應(yīng)用程序。 結(jié)束語本教程介紹如何在JDeveloper IDE中開發(fā)WebLogic Server應(yīng)用程序,并從JDeveloper中將其部署到WebLogic Server實例。遠(yuǎn)程調(diào)試器添加了用于調(diào)試所部署的應(yīng)用程序的自動配置。J2EE應(yīng)用程序向?qū)Ш蛻?yīng)用服務(wù)器連接向?qū)Ш喕藨?yīng)用程序的開發(fā)和部署。我希望本教程能夠使您奠定堅實的基礎(chǔ),以便開始將JDeveloper與WebLogic Server結(jié)合使用。 參考資料dev2dev WebLogic Server 產(chǎn)品中心 原文出處:http://dev2dev./pub/a/2006/01/wls-jdeveloper.html
|
|