服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

图解jdeveloper 10g快速开发会话ejb

摘要 本文详细介绍了在oracle jdeveloper 10g环境下开发会话bean所涉及到的jdeveloper安装、配置方法以及enterprise javabean的设计、开发、运行、测试方法,为java初学者和jdeveloper学习者提供了有益的参考。

  1、jdeveloper 10g开发工具简介

  jdeveloper 10g是全球最大的数据库软件供应商甲骨文公司(oracle corporation)开发的一款java应用集成开发环境(ide)软件。它针对java应用开发中的各项活动提供了全面的支持,例如支持版本控制、系统建模、编码开发、程序调试、自动测试、系统性能优化等,以及具有方便地部署java应用程序和web服务的特性,大大简化了应用系统的发布操作。

  不但如此,oracle jdeveloper 10g 中还提出了其特有的j2ee 开发框架――oracle application development framework(adf)。该框架以 j2ee 设计模式为基础,不仅可帮助程序员开发更为健壮的 j2ee 应用系统,也可大幅度提高程序的编写效率、缩短应用系统的开发时间。

  2、为什么用jdeveloper进行会话bean的开发

  如上所述,jdeveloper 10g开发工具不但具有很强的系统集成度,而且,也具有了提高开发生产率的一些有益特性。

  除此之外,jdeveloper 10g具有可免费获得并使用、基于模型驱动开发(mda)、以及集成oc4j j2ee应用服务器的特性,决定了无论是开发还是学习,其都不失为一个好的集成开发环境。

  因此,本文以简单的hello session bean为例,来说明jdeveloper 10g下ejb的设计、编码、发布以及测试的方法和步骤,以为j2ee初学者降低学习门槛,提供更好的学习工具。

  3、jdeveloper 10g运行环境的准备

  3.1 下载

  ① 从sun网站下载j2se 1.4.2安装包

  ② 从oracle公司网站(http://www.oracle.com)下载oracle jdeveloper 10g开发工具(.zip文件)

  3.2 安装并设置java 运行环境

  安装下载的j2se 1.4.2安装包,并进行环境变量的设置。具体设置方法略,请参看相关文档。

  需要说明的是,经笔者测试,若java sdk用的是j2se 1.5(即tiger),则jdeveloper 10g的oc4j应用服务器启动时会报错,因此,建议最好使用j2se 1.4.2。

  3.3 解压缩jdeveloper

  下载的oracle jdeveloper 10g开发工具(.zip文件)不需要安装,只需将其解压缩到硬盘分区的某个文件夹下即可,如解压缩到g:/jdev9052。

  4、jdeveloper 10g应用服务器oc4j的安装

  jdeveloper 10g产品中内嵌了oracle的j2ee应用服务器软件――oc4j,其支持j2ee 1.3组件的开发。在此例中,要使用oc4j应用服务器,必须对其进行安装并做必要的设置。

  4.1安装和设置oc4j应用服务器

  在windows中进入dos命令提示符,输入以下dos命令以安装和设置oc4j应用服务器:

d:/documents and settings/administrator>g:
g:/>cd jdev9052/j2ee/home
g:/jdev9052/j2ee/home>java -jar oc4j.jar ?cinstall

  正常情况下,该命令将显示如下信息:

auto-unpacking g:/jdev9052_org/j2ee/home/applications/dms0.war... done.
auto-unpacking g:/jdev9052_org/j2ee/home/applications/dms.war... done.
auto-unpacking g:/jdev9052_org/bc4j/redist/bc4j.ear... done.
auto-unpacking g:/jdev9052_org/bc4j/redist/bc4j/webapp.war... done.
auto-deploying bc4j (new server version detected)...
auto-unpacking g:/jdev9052_org/soap/lib/soap.ear... done.
auto-unpacking g:/jdev9052_org/soap/lib/soap/soap.war... done.
auto-deploying soap (new server version detected)...
to enable in-process jsp compilation (which can be faster in some cases),
please add the path to your tools.jar in application.xml
example: <library path="../../../jdk/lib/tools.jar" />
enter an admin password to use: 1234
confirm admin password: 1234
if you are using j2se 1.4 or higher, please ensure that all your imported classe
s are within packages, as required by the java language specification.
installation done

  在上述过程中,需要输入两次应用服务器管理员用户admin的密码,这里为了便于记忆,设置管理员密码为1234。

  4.2 测试应用服务器

  在g:/jdev9052/bin目录下,存在两个批处理文件:start_oc4j.bat和stop_oc4j.bat,分别用来启动和关闭oc4j应用服务器。

  4.2.1 启动应用服务器oc4j

  再进入dos命令提示符下,输入以下命令:

d:/documents and settings/administrator>g:
g:/>cd jdev9052/jdev/bin
g:/jdev9052/jdev/bin>start_oc4j

  正常情况下,将显示以下信息:

starting oc4j with command: d:/java/jdk1.5.0/bin/java.exe -jar oc4j.jar
04/11/20 22:44:37 auto-deploying file:/g:/jdev9052_org/j2ee/home/applications/dm
s0/ (new server version detected)...
04/11/20 22:44:37 auto-deploying file:/g:/jdev9052_org/j2ee/home/default-web-app
/ (new server version detected)...
04/11/20 22:44:37 auto-deploying file:/g:/jdev9052_org/j2ee/home/applications/dm
s/ (new server version detected)...
04/11/20 22:44:37 auto-deploying file:/g:/jdev9052_org/bc4j/redist/bc4j/webapp/
(new server version detected)...
04/11/20 22:44:37 auto-deploying file:/g:/jdev9052_org/soap/lib/soap/soap/ (new
server version detected)...
04/11/20 22:44:45 oracle application server containers for j2ee 10g (9.0.4.0.0)
initialized

  4.2.2 关闭应用服务器oc4j

  在dos提示符下进入g:/jdev9052/jdev/bin目录,输入命令:

stop_oc4j admin 1234

  其中,admin是管理员账号,1234是在安装过程中输入的管理员密码。

  输出信息略。

  4.3 在jdeveloper中设置到oc4j应用服务器的连接

  运行g:/jdev9052/jdev/bin/jdevw.exe程序,可启动jdeveloper 10g开发工具。首次运行将询问你是否从以前版本升级,选择否即可。
(因后续内容多用图示表达,故只添加少量文字说明)

  建立到oc4j应用服务器连接的操作步骤如以下图所示:

图解jdeveloper 10g快速开发会话ejb(图一)
图1 新建应用服务器连接操作

图解jdeveloper 10g快速开发会话ejb(图二)
点击查看大图

图2 选择应用服务器类型窗口

图解jdeveloper 10g快速开发会话ejb(图三)
点击查看大图

图3 设置应用服务器连接参数窗口1

  在图3窗口中,填写admin用户的密码为:1234

图解jdeveloper 10g快速开发会话ejb(图四)
图4 设置应用服务器连接参数窗口2

  在图4窗口中,直接选择“下一步”即可。

图解jdeveloper 10g快速开发会话ejb(图五)
图5 应用服务器连接测试窗口

  这里可以点击“test connection”按钮进行连接测试,当然,正确连接的前提是,你先前已经通过4.2.1节的方法启动了oc4j应用服务器。

  此处,我们不进行测试,直接选择“完成”。 5、在jdeveloper 10g中新建应用程序空间

  应用程序空间是jdeveloper组织和管理多个应用项目(project)的一种管理形式。一个应用程序空间中可以包含多个应用项目。

  新建应用程序空间的具体操作:选择工具栏中的“新建”按钮。

图解jdeveloper 10g快速开发会话ejb(图六)
图6 选择新建类型窗口

  选择application workspace(这种workspace可以为应用指定所要使用的模板),然后选择“确定”。

图解jdeveloper 10g快速开发会话ejb(图七)
图7 模板类型设置窗口

  在上面的对话框中输入应用程序名称、应用程序包的前缀、应用模板等信息。这里,应用模板选择web application[jsp,struts,ejb]模板。

  6、jdeveloper 10g中hello session bean的设计与开发

  6.1 为业务模型建立ejb diagram

  具体操作如以下图所示:

图解jdeveloper 10g快速开发会话ejb(图八)
图8 新建项目操作

图解jdeveloper 10g快速开发会话ejb(图九)
图9 选择新建项目窗口

  输入diagram名称:

图解jdeveloper 10g快速开发会话ejb(图十)
图10 ejb组件参数设置窗口

  通过拖动组件面板中的“sessionbean”按钮到编辑区方法从而创建会话bean类:

图解jdeveloper 10g快速开发会话ejb(图十)
图11 jdeveloper 10g界面中的组件面板(component palette)

  出现“create enterprise javabean”对话框:

图解jdeveloper 10g快速开发会话ejb(图十二)
图12 创建enterprise javabean欢迎窗口

图解jdeveloper 10g快速开发会话ejb(图十三)
图13 创建enterprise javabean向导操作1

图解jdeveloper 10g快速开发会话ejb(图十四)
图14 创建enterprise javabean向导操作2

图解jdeveloper 10g快速开发会话ejb(图十五)
图15 创建enterprise javabean向导操作3

图解jdeveloper 10g快速开发会话ejb(图十六)
图16 创建enterprise javabean向导操作4

  在图16窗口中,注意勾选“include local interface”项。

图解jdeveloper 10g快速开发会话ejb(图十七)
图17 创建enterprise javabean完成后的摘要信息

  选择“完成”,则编辑区效果如下:

图解jdeveloper 10g快速开发会话ejb(图十八)
图18 ejb diagram图中被创建的session bean

  6.2 为hellosessionejb类添加业务处理方法

  鼠标双击图中的hellosessionejb类图,将出现下面的对话框:

图解jdeveloper 10g快速开发会话ejb(图十九)
图19 ejb模块属性编辑窗口

  选择“add”按钮,进行业务处理方法的添加:

图解jdeveloper 10g快速开发会话ejb(图二十)
图20 业务方法参数设置窗口

  输入sayhello方法名及该方法返回值的数据类型等参数,然后选择“确定”按钮。

  6.3 调整图形元素的尺寸大小

图解jdeveloper 10g快速开发会话ejb(图二十)
图21 调整图形大小操作

  6.4 为会话bean的sayhello方法编写实现代码

  具体操作如下:

图解jdeveloper 10g快速开发会话ejb(图二十二)
图22 查看hellosessionejb组件的实现代码操作

  为sayhello方法添加以下代码:

public string sayhello()
{
return "hello, world";
}

  6.5 修改hellosessionejbbean.java的部分代码

  对类hellosessionejbbean中的代码作如下修改:

sessioncontext ctx; //添加
public void setsessioncontext(sessioncontext ctx)
{
this.ctx = ctx; //添加
}
7、验证和测试hello session bean

  7.1 验证ejb

  验证的作用:通过ejb验证,可发现由于手工修改代码造成的接口声明和实现代码不一致的错误,从而防止编译、发布和运行期间可能出现的错误。

  具体验证操作如下:

图解jdeveloper 10g快速开发会话ejb(图二十三)
图23 验证ejb组件操作

  查看结果:

图解jdeveloper 10g快速开发会话ejb(图二十四)
图24 查看验证操作的结果

  通过观察上述窗口中的信息,说明操作没有错误和可疑之处。

  7.2 建立ejb组件的客户端测试程序

  具体操作如下:

图解jdeveloper 10g快速开发会话ejb(图二十五)
图25 新建ejb组件测试程序操作

  出现:

图解jdeveloper 10g快速开发会话ejb(图二十六)
图26 测试程序运行容器类型设置窗口

  这里,选择connect to oc4j embedded in jdeveloper,即客户端测试程序及所用的ejb组件将在嵌入的oc4j容器中运行。

  若选择第二项,则可将ejb组件发布到远程应用服务器,并试图在远程服务器中运行客户端测试程序;当然,此时。远程应用服务器应已经启动。

  7.3 修改客户端测试程序

  将客户端测试程序中的语句

// hellosessionejb.sayhello( );

  前的注释去掉,修改如下:

string s = hellosessionejb.sayhello( );
system.out.println("结果:" + s);

  8、编译和运行程序

  8.1 编译程序

图解jdeveloper 10g快速开发会话ejb(图二十七)
图27 程序编译操作

  8.2 发布ejb组件

  在jdeveloper 10g中,将enterprise javabean组件发布到内嵌的oc4j应用服务器十分方便,发布(deploy)操作不需要建立发布描述文件以及进行打包操作;只需运行ejb组件即可,如下图所示:

图解jdeveloper 10g快速开发会话ejb(图二十八)
图28 ejb组件的发布

  选择运行命令之后,jdeveloper将自动启动oc4j应用服务器,并发布上述hellosessionejb组件到该服务器,具体信息在embedded oc4j server窗口中显示如下:

[starting oc4j using the following ports: http=8988, rmi=23891, jms=9227.]
……
[waiting for the server to complete its initialization...]
……
04/11/21 00:15:04 auto-deploying - compiling and loading...
……
embedded oc4j startup time: 193137 ms.
……
all ejbs are successfully deployed.

  查看最后一句话,说明ejb组件被正确发布了。

  8.3 运行客户端测试程序

  运行hellosessionejbclient.java程序,查看运行结果:

图解jdeveloper 10g快速开发会话ejb(图二十九)
图29 测试程序运行结果

  说明ejb组件客户端程序正确地调用了hello session bean的sayhello方法。

  9、结束语

  通过上述操作,读者可以看出,在jdeveloper 10g开发工具中设计、开发和测试ejb组件具有直观和易于操作的特性,尤其,在ejb组件发布时,既不需要编写用于发布的xml文件,也不需要掌握weblogic或jboss等应用服务器软件的使用方法。这种特性,使得应用开发者可将更多的精力投入到应用系统的设计和开发中去,从而,可大大提高开发效率。

扫描关注微信公众号