分享
 
 
 

灵活使用EJB的本地和远程接口(二)

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

在 application Developer 中设置项目

步骤 1. 创建数据模型和持久性存储

用于 Dual 应用程序的数据模型与 “Hello World”J2EE 应用程序中的是一样的。先进入 DB2,再创建名为 dualDB 的数据库,然后在数据库中创建表 PERSON:

CREATE TABLE PERSON

(

IDINTEGER NOT NULL PRIMARY KEY,

FIRSTNAME VARCHAR(40),

LASTNAMEVARCHAR(40)

)

在下载的 Zip 文件的 Table.ddl 中提供了此脚本。

步骤 2. 创建项目

在这一步中,我们将创建一组项目,其中的每个项目都将用于不同的目的。例如我们将把实体 Bean 和会话 Bean 放在不同的 JAR 中,之所以这样做是因为较大的 J2EE 应用程序经常是由若干 JAR 或项目组成的。请一个接一个地创建以下项目:

a.java 项目:DualJavaModule00。在此项目中,创建包 dual.value。我们将把 VO 的类 Person 放入其中。

b.J2EE 1.3 项目:DualEARForAllInOne。此项目将是 All-in-One 拓扑的占位符。

c.J2EE 1.3 项目:DualEARForEJBContainer。此项目只预备用作 EJB 容器。

4.J2EE 1.3 项目:DualEARForWeb。此项目只预备用作 Servlet 容器。此外,我们还可以使用 DualEARForAllInOne 来达到相同的目的,因为它们惟一的不同之处在于项目依靠性。然而,最好保持它们分离。

5.EJB 2.0 项目:DualEJBModule01。与 DualEARForEJBContainer 相关联。创建包 dual.ejb(在 ejbModule 文件夹中)。

6.EJB 2.0 项目:DualEJBModule02。与 DualEARForEJBContainer 相关联。同样地,创建包 dual.ejb。使此项目依靠于 DualEJBModule01。(稍后将对依靠性作进一步的介绍。)

7.Web 项目:DualWebModule03。在创建此项目时,请选中 Advanced options 复选框,使其与 DualEARForWeb 相关。在此 Web 项目内创建一个包 dual.servlet。不选定所有的 WebProject features,因为此练习不需要它们。

在完成了初始项目结构之后,工作台中的 J2EE 视图应该看起来如图 3 所示。

图 3. 具有项目的工作台

在 Project Navigator 视图中,您可以看到所有已创建的项目。

步骤 3. 创建项目内容

a.在 DualJavaModule00 项目中,创建名为 dual.value.Person 的 Java Bean。您可以从下载的内容中复制此 Bean。通过右击项目名并选择 Refresh 来刷新项目。

b.在 DualEJBModule01 中,创建具有具有容器治理的持久性(Container Managed Persistence,CMP)的实体 Bean。将其命名为 DualEntity(图 4),具有类型 int 的键字段 id 和 firstName 和 lastName 作为持久性 String 字段。选中本地和远程客户端视图,如图 5 所示。我们将使用 Remote Home Interface 的名称 dual.ejb.DualEntityRemoteHome 和远程接口的名称 dual.ejb.DualEntityRemote,因而需要更改缺省名。EJB 绑定名将为ejb/dual/ejb/DualEntityHome。

图 4. DualEntity EJB

图 5. CMP 字段和命名约定

另一种方法是,将源代码从下载的文件复制到项目文件夹中,刷新项目,然后如上创建实体 Bean,用该代码作为膜板(图 5)。这还将创建 ejb-jar.xml 和绑定描述符。在此之后,您还可以将 ejb-jar.xml 从下载的文件复制到项目中。

c.在 DualEJBModule02 中,创建无状态会话 Bean(称为 Dualsession)。另外,您还可以复制源代码的内容,刷新项目,然后用该代码作为膜板创建 DualSession 会话 Bean。与上面类似,我们将需要本地和远程接口,Remote Home Interface 的名称为 dual.ejb.DualSessionRemoteHome,远程接口的名称为 dual.ejb.DualSessionRemote。(检查为命名约定提供的源代码。)从下载的文件中复制 ejb-jar.xml。稍后我们将进行代码分析。在分析完成之后,您将得到许多错误消息。现在忽略它们;在下一步确定项目依靠性时将解决这些错误。

d.在 DualWebModule03 中,创建名为 DualServlet 的 Servlet。此外,完成这项任务还有一种更快速的方法,就是从下载的文件中复制源代码 DualServlet.java。您也可以将 web.xml、index.Html 和 result.jsp 复制到项目文件夹中。另外,您会得到许多错误消息,但是现在我们将通过确定项目依靠性来解决这些错误。

步骤 4. 确定项目依靠性和 EJB 到 RDB 映射

a.通过调整项目特性中的 Java Build Path 来使 DualEJBModule02 项目依靠于 DualJavaModule00 和 DualEJBModule01 项目。在选择 OK 按钮之后,此项目的错误应该消失。

b.同样地,使 DualWebModule03 依靠于 DualEJBModule02 和 DualJavaModule00,采取的方式是再次调整项目特性中的 Java Build Path,在 Web Library Projects 设置中压需要进行做同样的调整。此后,您就不应该有错误消息。

c.要将 DualEntity Bean 映射到关系数据库(RDB)表 PERSON,可以选择 DualEJBModule01,再右击并选择 Generate... = EJB to RDB Mapping ...,然后使用如下选项:

·创建一个新的后端文件夹。

·对于 EJB/RDB 映射,使用“Meet In The Middle”选项。

·要建立数据库连接,可以选择 DB name, userID, passWord, DB2 Universal Database 8.1,然后接受剩余选项的所有缺省值。

·选择 PERSON 表供导入。

·选择 Match By Name and Type 选项。

·首先选择 Bean,再选择表,然后右击并选择 Match by Type。

图 6. EJB 到 RDB 映射

d.为 DualEJBModule01 和 DualEJBModule02 选择 Generate... = Deployment and RMIC Code...。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有