使用ORACLE JDEVELOPER 10G在WEBLOGIC SERVER 8.1上开...

来源:百度文库 编辑:神马文学网 时间:2024/04/30 06:30:18
摘要
Oracle JDeveloper 10g IDE是功能全面的J2EE IDE,可用于在BEA WebLogic Server 8.1上开发和部署J2EE应用程序。在本教程中,将在Jdeveloper中开发一个简单的JSP Web应用程序,并部署到WebLogic Server 8.1实例。本教程还将示范如何使用JDeveloper IDE调试应用程序。
概述
JDeveloper IDE支持BEA WebLogic Server上J2EE应用程序的开发。JDeveloper 10.1.2支持WebLogic Server版本6.x、7.x和8.x。JDeveloper 10.1.3(刚刚发布)支持版本8.x和9.x。JDeveloper还提供远程调试器,用以调试部署到WebLogic Server的应用程序。在JDeveloper IDE中开发的J2EE应用程序可能包含EJB、JSP、Struts、Java类、applet和servlet。在本教程中,将在JDeveloper 10g IDE中开发一个Model-View(模型-视图)J2EE应用程序(包含会话EJB和JSP客户端),并部署到WebLogic Server 8.1实例。
初步设置
假定您已经安装了WebLogic Server 8.1。使用Configuration Wizard(配置向导),创建一个WebLogic Server域名。 安装JDeveloper 10g (10.1.2) IDE。将\server\lib\weblogic.jar复制到目录\jdev\lib\ext。是安装WebLogic Server 8.1的目录。是安装JDeveloper 10g的目录。 现在就可以开始了!
配置到WebLogic Server的连接
在本节中,我们将配置从JDeveloper IDE到WebLogic Server的连接。首先,启动WebLogic Server和JDeveloper IDE。 在JDeveloper控制台中,选择Connections选项卡以配置到WebLogic Server的连接。Connection>Application Server节点的作用是配置到应用程序服务器的连接。右击Application Server节点,然后选择New Application Server Connection。

图1.新建应用服务器连接
这将启动Create Application Server Connection Wizard。在Type框中指定Connection Name,并选择Connection Type为WebLogic Server 8.x。也支持早期版本WebLogic Server 6.x和7.x。 单击Next。

图2.连接类型
在Authentication框中,指定用户名和密码,然后单击Next。在Connection框中,指定WebLogic Server主机名称、端口、目标服务器和到weblogic.jar的路径。单击Next。

图3.连接参数
在Test框中,选择Test Connection按钮以测试到WebLogic Server的连接。如果建立了到服务器的连接,就会显示Success消息。单击Finish按钮。现在将配置到WebLogic Server 8.1的连接,一个用于此连接的节点将被添加到Connections-Navigator。

图4. WebLogic Server连接
现在已经运行了WebLogic Server和JDeveloper IDE,而JDeveloper也能够与WebLogic Server实例进行交互。
将应用程序部署到WebLogic Server
在本节中,我们将在JDeveloper IDE中开发一个J2EE应用程序,并将它部署到WebLogic Server。此J2EE应用程序包含会话EJB和用于此会话EJB的JSP客户端。首先,在JDeveloper中创建一个应用程序工作区和项目。选择File>New,然后在New Gallery框中选择General>Application Workspace。单击OK按钮。 在Create Application Workspace框中,指定应用程序名称和目录名称,然后选择Web Application [JSP, EJB]作为应用程序模板。单击OK按钮。一个应用程序工作区将被添加到Applications-Navigator,而Model和View项目节点将被添加到工作区。

图5. Model和View项目
下一步,创建会话EJB。右击Model项目节点,然后选择New。在New Gallery框中,在列出的Categories中选择Business Tier>Enterprise JavaBeans (EJB),然后在列出的项目中选择Session Bean。单击OK按钮。

图 6.新建会话bean
Create Enterprise JavaBean Wizard将启动。在Select EJB Version框中,选择Enterprise JavaBeans 2.0作为EJB版本。单击Next按钮。在EJB Name and Options框中,指定EJB Name、Session Type和Transaction Type(或者选择默认方式),然后单击Next按钮。在Class Definitions框中,指定Bean Class(或者选择默认方式)。单击Next按钮。在EJB Home and Component Interfaces框中,选择Include Local Interfaces项,然后指定Local Home Interface和Local Interface(或者选择默认方式)。单击Next按钮。在Summary页面,会列出将由Create Enterprise JavaBean Wizard生成的bean类、本地主页接口和本地接口类。单击Finish按钮,以生成会话EJB类。此会话EJB将被添加到Model项目。还会生成ejb-jar.xml部署描述符。
对于WebLogic Server应用程序,不需要orion-ejb-jar.xml部署,应该从META-INF目录删除它。需要添加weblogic-ejb-jar.xml部署描述符。为此,请右击Model项目节点,然后选择New。在New Gallery框中,在列出的Categories中选择General>Deployment Descriptors,然后在列出的项目中选择weblogic-ejb-jar.xml。

图 7.新建weblogic-ejb-jar.xml
此weblogic-ejb-jar.xml部署描述符将被添加到Model项目。修改weblogic-ejb-jar.xml部署描述符。使用local-jndi-name替换jndi-name。

图 8. weblogic-ejb-jar.xml
下一步,将业务方法添加到会话EJB。在Application-Navigator中选择session EJB节点。 在EJB Module Editor中选择Enterprise Java Beans>Session EJB>Methods。在Method Category选择列表中,选择Business methods,然后单击Add按钮。在Business Method Details框中,指定方法名称、返回类型和方法参数。由于示例会话EJB具有本地接口,请选择Expose through Local Interface选项。单击OK按钮。指定的方法将被添加到会话EJB。单击EJB Module Editor中的OK按钮。

图 9. 会话EJB方法
在Applications-Navigator中,选择session EJB节点,然后在Structure框中,选择SessionEJBBean。在SessionEJBBean类的getAppServer()方法中,添加一个返回的String。

图 10. getAppServer方法
业务方法getAppServer()通过SessionEJBLocal接口被暴露。下一步,创建用于会话EJB的JSP客户端。右击Applications-Navigator中的View项目节点,然后选择New。在New Gallery框中,在Categories中选择Web Tier>JavaServer Pages,然后在列出的项目中选择JSP Page。在Create JSP框中,指定用于JSP的文件名称和目录名称。此JSP将被添加到View项目。 我们希望这个新建JSP来调用Model项目中的会话EJB的getAppServer()业务方法。虽然这不是完美的MVC行为,但是本教程的目的是探索IDE的特性,而不是写出优秀的代码。需要在View项目的类路径中添加J2EE库。

图 11. Applications Navigator中的weblogic.jsp
选择Tools>Project Properties,以将J2EE库添加到View项目。在Project Properties框中,在列出的Categories中选择Profiles>Development>Libraries。将J2EE库从Available Libraries框发送到Selected Libraries框中。J2EE库拥有javax.ejb包Enterprise JavaBeans类和接口。

图 12. J2EE库
在客户端JSP中,从会话EJB JNDI获得SessionEJBLocalHome对象。从SessionEJBLocalHome对象创建SessionEJBLocal对象,并调用getAppServer()方法:
InitialContext ctx=new InitialContext();Object objref = ic.lookup("SessionEJB");model.SessionEJBLocalHomesessionEJBHome=(model.SessionEJBLocalHome)objref;model.SessionEJBLocal sessionEJB=sessionEJBHome.create();out.println(sessionEJB.getAppServer());
用于会话EJB的weblogic.jsp客户端JSP如下图所示:

图 13. weblogic.jsp
我们已经创建了一个会话EJB和一个用于会话EJB的JSP。下一步,将创建用于会话EJB的EJB
JAR文件。右击Applications-Navigator中的Model项目节点,然后在列出的Categories中选择General>Deployment Profiles。在列出的Items中选择EJB JAR File。单击OK按钮。

图 14.新建EJB JAR文件
在Create Deployment Profile框中,选择默认部署配置文件名称和目录,然后单击OK按钮。在EJB Jar Deployment Profile Properties框中,选择为EJB JAR File、Enterprise Application Name指定的默认值ejb1,然后单击OK按钮。
图 15. EJB JAR Deployment Profile Properties
会话EJB的部署配置文件将被添加到Model项目。
图 16. EJB部署配置文件
下一步,创建用于JSP的WAR文件。右击View项目节点,然后选择New。在New Gallery框中,在列出的Categories中选择General>Deployment Profiles,然后在列出的Items中选择WAR File。单击OK按钮。在Create Deployment Profile框中,指定部署配置文件名称和目录名称(或者选择默认值),然后单击OK按钮。用于JSP的部署配置文件将被添加到View项目。
图 17. Web应用程序部署配置文件
在Project Properties中设置用于Web应用程序的J2EE Web Context根目录。选择Tools>Project Properties。在Project Properties框中,选择Common>J2EE节点。在J2EE Web Context Root字段中指定上下文根目录。对于示例Web应用程序,指定weblogic-context-root作为上下文根目录。下一步,指定Model项目和View项目之间的依赖关系。右击View项目节点,然后选择New。在New Gallery框中,选择Common>Dependencies节点。在Model项目中选择EJB JAR部署配置文件,然后单击OK按钮。
图 18.项目依赖关系
下一步,为Model-View应用程序创建应用程序部署配置文件。右击View项目节点,然后选择New。在New Gallery框中,在列出的Categories中选择General>Deployment Profiles,然后在列出的Items中选择EAR File。单击OK按钮。在Create Deployment Profile框中,指定部署配置文件名称和目录(或者选择默认值),然后单击OK按钮。在EAR Deployment Profile Properties框中,选择Application Assembly节点。选择Web应用程序J2EE模块和EJB应用程序模块。单击OK按钮。
图 19. EAR Deployment Profile Properties
此应用程序部署配置文件节点将被添加到Applications-Navigator。下一步,将J2EE应用程序部署到已经启动的WebLogic Server。右击应用程序部署配置文件节点,然后选择Deploy to>AppServerConnection1。AppServerConnection1是到WebLogic Server的连接。
图 20.部署到WebLogic Server
此J2EE应用程序将被部署到WebLogic Server。使用URL:http://localhost:7001/console来访问WebLogic Server管理控制台。J2EE应用程序列在Deployments>Applications节点中。
图 21. 部署到WebLogic Server的应用程序
下一步,使用URL: http://localhost::7001/weblogic-context-root/weblogic.jsp运行WebLogic Server中用于会话EJB的客户端JSP。会话EJB的getAppServer()方法将在该JSP中被调用,而此方法返回的String值将被输出到浏览器。

图 22. 运行WebLogic Server中的JSP
远程调试WebLogic应用程序
JDeveloper IDE具有用于使用远程调试器来远程调试部署到WebLogic Server的应用程序的自动配置。在本节中,我们将在JDeveloper中调试部署到WebLogic Server的示例J2EE应用程序。为使用JDeveloper debugger调试部署到WebLogic Server的应用程序,请以调试模式启动服务器。WebLogic Server调试基于Java平台调试器架构(Java Platform Debugger Architecture,JPDA)。对于在上一节中部署的J2EE应用程序,服务器并未在调试模式下启动。从WebLogic Server卸载上一节中部署的J2EE应用程序。服务器将以调试模式重新启动。要以调试模式启动WebLogic Server,请修改\server\bin目录下的startWLS脚本。是安装WebLogic Server 8.1的目录。在startWLS脚本中,使用以下代码指定JAVA_OPTIONS:
set JAVA_OPTIONS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=4000,suspend=n
-XDebug参数启用调试。-Xnoagent参数禁用默认sun.tools.debug调试器。-Xrunjdwp参数加载JDWP的JPDA参考执行实例。JDWP协议是用于使用远程调试器进行调试的协议。以调试模式启动WebLogic Server。在默认情况下,JDeveloper IDE中的远程调试器是不可用的。通过选择Project Properties框中的Profiles>Development>Debugger>Remote节点,在JDeveloper中设置远程调试特性。选择Remote Debugging选项,然后选择Attach to JPDA单选按钮。

图 23. 设置远程调试
要使用远程调试器调试JSP,请将debug param添加到weblogic.xml部署描述符。在View项目中的weblogic.xml部署描述符中,将debug param值设为true:
debugtrue
图 24. 在weblogic.xml中指定调试参数
下一步,将断点添加到JSP。选择View>Debugger>Breakpoints。

图 25. 设置断点
将显示Breakpoints框。默认支持的断点在Breakpoints框中被列出。要添加新断点,请右击Breakpoints框,然后选择New Breakpoint。将显示New Breakpoint框。作为示例,选择Exception类NullPointerException。

图 26.断点类
NullPointerException断点将被添加到Breakpoints框。为了演示远程调试,将一个错误添加到JSP。使用
InitialContext ctx=null;
替换
InitialContext ctx=new InitialContext();
设置InitialContext为空,将在JSP应用程序中生成NullPointerException。像上一节一样,生成Web应用程序的部署配置文件和J2EE应用程序的部署配置文件。像上一节一样,将J2EE应用程序部署到WebLogic Server。使用URL:http://localhost:7001/console来访问WebLogic Server Administration Console。 下一步,启动远程调试器。右击View项目,然后选择Remote Debugger。

图 27. 启动远程调试器
在Debugger框中,指定本地主机作为Host(主机),4000作为Port(端口)。端口4000在-Xrunjdwp参数中指定,该参数用于以调试模式启动WebLogic Server。

图 28.调试器主机和端口
远程调试器将启动并连接到WebLogic Server。

图 29. 调试器输出
在WebLogic Server管理控制台中,使用以下URL调用存在错误(InitialContext被设置为空)的weblogic.jsp JSP:
http://localhost:7001/weblogic-context-root/weblogic.jsp
调试器会发现异常。如果调试器未能找到JSP源文件,可能会显示Unable to Find Source File框。 使用open file dialog单选按钮选择Let me find the file myself。在View/public_html目录中选择weblogic.jsp。生成NullPointerException的代码将在JSP中突出显示。

图 30. 存在错误的JSP代码
在JDeveloper IDE中使用不同的调试选项来调试JSP应用程序。在本节中,我们通过JDeveloper远程调试器调试了从JDeveloper IDE部署到WebLogic Server的J2EE应用程序。
结束语
本教程介绍如何在JDeveloper IDE中开发WebLogic Server应用程序,并从JDeveloper中将其部署到WebLogic Server实例。远程调试器添加了用于调试所部署的应用程序的自动配置。J2EE应用程序向导和应用服务器连接向导简化了应用程序的开发和部署。我希望本教程能够使您奠定坚实的基础,以便开始将JDeveloper与WebLogic Server结合使用。
参考资料
dev2devWebLogic Server 产品中心
原文出处:http://dev2dev.bea.com/pub/a/2006/01/wls-jdeveloper.html

作者简介
Deepak Vohra 是一名NuBean顾问兼web开发人员。他拥有Sun Certified Java 1.4 Programmer和Sun Certified Web Component Developer for J2EE证书。