Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

容器管理持续化示例

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

package team; 
import java.util.*; 
import javax.ejb.*; 
public interface LocalPlayer extends EJBLocalObject { 
public String getPlayerId(); 
public String getName(); 
public String getPosition(); 
public double getSalary(); 
public Collection getTeams(); 
public Collection getLeagues() throws FinderException; 
public Collection getSports() throws FinderException; 
}

  RosterApp设置向导

  这一部分将指导你如何设定容器管理持续化及关联的entity bean的部署描述。

  要开始这一工作,首先运行deploytool并打开j2eetutorial/examples/ears目录下的RosterApp.ear文件。

  RosterApp

  选择RosterApp以显示应用程序的部署设置。

  General标签(RosterApp)

  Contents区域将显示RosterApp.ear文件中包含的内容,包括两个EJB JAR文件(team-ejb.jar、roster-ejb.jar)和J2EE应用程序客户端JAR文件(roster-ac.jar)。参见图6-2。

  图6-2 RosterApp的General标签

  JNDI Names标签(RosterApp)

  Application表中列出了RosterApp应用程序中的enterprise bean的JNDI命名。

  索引表有两条记录。EJB Ref记录将RosterClient中的代码名(ejb/SimpleRoster)映射为RosterEJB这个session bean的JNDI命名。Resource记录指定了包含在TeamJAR模块中的entity bean所访问的数据库的JNDI命名。

  RosterClient

  要察看这个客户端,通过单击邻近的图标展开RosterApp节点。然后,选择RosterClient。

  JAR File标签(RosterClient)

  Contents区域显示了roster-ac.jar文件中包含的文件:两个XML文件(部署描述)以及一个类文件(RosterClient.class)。

  EJB Refs标签(RosterClient)

  RosterClient访问RosterEJB这个session bean。因为这个访问是通过远程进行的,所以Interfaces列的值是Remote,而Local/Remote Interface列的值是bean的remote接口(roster.Roster)。

  RosterJAR

  选择RosterJAR。这个JAR文件包含了RosterEJB这个session bean。

  General标签(RosterJAR)

  Contents区域列出了类文件中的三个软件包。roster软件包包含了RosterEJB所需要的类文件--session bean类、remote接口和home接口。team软件包包含了由RosterEJB这个session bean所访问的entity bean的local接口。util软件包包含了这个应用程序的功能类。

  RosterEJB

  展开RosterJAR节点并选择RosterEJB。

  General标签(RosterEJB)

  这个标签显示了RosterEJB是一个可以远程访问的stateful session bean。因为它不允许本地访问,Local Interface区域为空。

  EJB Refs标签(RosterEJB)

  RosterEJB这个session bean访问三个entity beans:PlayerEJB、TeamEJB和LeagueEJB。因为这个访问是本地的,在Interfaces列中的记录被定义为Local。Home Interface列列出了entity bean的local home接口。Local/Remote Interfaces列显示了entity bean的local接口。

  要显示运行部署设置,选择表中的一行。例如,当你选择代码名为ejb/SimpleLeague的一行时,在Enterprise Bean Name区域会显示LeagueEJB。如果一个组件指向一个本地的entity bean,那么你必须在Enterprise Bean Name区域输入所指向的bean的命名。

  TeamJAR

  选择TeamJAR节点。这个JAR文件包含三个相关的entity bean:LeagueEJB、TeamEJB和PlayerEJB。

  General标签(TeamJAR)

  Contents区域显示了类文件的两个软件包:team和util。team软件包包含所有三个entity bean的entity bean类、local接口和local home接口。util软件包包含了功能类。

  Relationships标签(TeamJAR)

  在这个标签下(图6-3)你可以定义两个使用容器管理持续化的entity bean的关联关系。

  图6-3 TeamJAR的Relationships标签

  Container Managed Relationships标签概括了两个关联关系:TeamEJB-PlayerEJB和LeagueEJB-TeamEJB。在TeamEJB-PlayerEJB关联关系中,TeamEJB被标志为EJB A,而PlayerEJB被标志为EJB B。(这种标志你可以任意决定--你也可以将PlayerEJB标志为EJB A,而将TeamEJB标志为EJB B。)

  Edit Relationship对话框(TeamJAR)

  要显示Edit Relationship对话框(图6-4),在Relationships标签选择一行并单击Edit。例如,要显示TeamEJB-PlayerEJB关联关系,选择EJB A值为Team的一行并单击Edit。

  图6-4 TeamJAR的Edit Relationship对话框

  TeamEJB-PlayerEJB关联关系

  多重组合框提供了四个选择。对于这个关联关系,需要选择Many To Many,这是因为一个运动队有多个队员,而一个队员可以属于多个运动队。

  在Enterprise Bean A中的信息定义了TeamEJB端的关联关系。Referencing Bean B中显示了TeamEJB中的关联字段(players)。这对应于TeamBean.java源代码中关联关系访问方法:


public abstract Collection getPlayers(); 
public abstract void setPlayers(Collection players);

  Field Type组合框选择为java.util.Collection,它匹配访问方法的players类型。players类型是一个多值对象(Collection),因为在TeamEJB端的关联关系是具有多重性。

  TeamEJB-PlayerEJB关联关系是双向的--每一个bean都有一个关联字段指向另一个与之关联的bean。如果这个关联关系是单向的,bean中的其中一个就没有指向另一个bean的关联字段。对于没有关联字段的bean,Field Referencing的值为<none>。

  LeagueEJB-TeamEJB关联字段



 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页 1 2 34 5 6 7 8 9 下一页


上一篇:在GoF模式以外(1)   下一篇:Bean管理持续化实例

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
·Motorola微处理器bootloader分析与应用
·Fedora Core5 NFS服务器搭建过程介绍
·Linux系统:让内存不再泄漏的实用技巧
·新手看招 手把手教你安装VMware虚拟机
·“侵权事件” 红帽称微软企图干扰用户
·删除Linux后 如何找回Windows启动菜单
·菜鸟乐园 Linux中常见文件系统格式介绍
·Linux操作系统下IPTables配置方法详解
·实用技巧 Linux系统的经典使用技巧八则
·Linux系统文件优化及磁盘检查方法介绍
推荐文章
·java类库中的设计模式(1)
·增强Sendmail的抗DoS攻击能力
·gcc中格式化输出函数的研究(2)
·在Ubuntu上建立Arm Linux的开发环境
·如何在Jsp中使用JDBC来联结MySql
·Linux 指令篇:设备管理--setleds
·Bzip2 Howto
·socket 基础知识
精彩文章
·对象/关系映射--关联模式
·Xwpe 1.5.26a
·做一个最小的Linux kernel
·X-window下如何设定Linux的控制台休
·如何监测内存泄漏
·Qmail+LDAP安装配置实例(二)
·IP伪装技术浅谈
·Jini和RMI开发中的codebase问题
·GTK v1.2 Tutorial(英文)
·Linux用户要注意修复漏洞
·[显卡]nvidia显卡的安装大全
·Linux操作系统的经典汉化方案回顾
·KDE 2.1安装及使用介绍
·常见的wireless名词整理
·Apache服务器实现用户验证
·如何重新规划分割区
·如何提高linux命令行的工作效率
·标准建模语言UML及其支持环境(一)
·Linux 指令篇:文件打印--lpr
·Linux组网入门(4):文件服务器
·Linux99问(上)
·[软件安装]软件安装通用思路
·gdb (GNU 调试器):基础
·GAWK 手册(二)
·SNORT FAQ v1.7.5(2)
·正则表达式
Power by linux-cn.com 粤ICP备05006655号