快速业务通道

灵活使用EJB的本地和远程接口(三) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

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

时间:2011-04-23

JNDI 绑定和源代码分析

EJB 模块

从 DualEJBModule01 开始。在 EJB Deployment Descriptor 编辑器面板中,选择 Beans 选项卡,然后选择 DualEntity,并且确保 WebSphere Bindings 部分中的 JNDI 名设置为 “ejb/dual/ejb/DualEntityHome” 。保存所有的更改。首先,让我们研究 DualEJBModule02 项目中 DualSession EJB 的 ejb-jar.xml 的代码片断:

... useLocal java.lang.Boolean true doTrace java.lang.Boolean false ejb/DualEntityRemoteHome Entity dual.ejb.DualEntityRemoteHome dual.ejb.DualEntityRemote DualEJBModule01.jar#DualEntity ejb/DualEntityLocalHome Entity dual.ejb.DualEntityLocalHome dual.ejb.DualEntityLocal DualEJBModule01.jar#DualEntity    ...

这里,第一个元素(具有名称“useLocal”)是用来控制 DualEntity EJB 的本地接口的使用的。第二个条目(具有名称“doTrace”)准备只用于跟踪。已实现的跟踪功能是相当基本的,但是对于我们的目的来说足够了。 相应的 Java 代码看起来像是下面这样的:

public class DualSessionBean implements javax.ejb.SessionBean {    private javax.ejb.SessionContext mySessionCtx;    private boolean doTrace;    private boolean useLocal;    private DualEntityRemoteHome entityRemoteHome;    private DualEntityLocalHome entityLocalHome;    public void setSessionContext(javax.ejb.SessionContext ctx) {    mySessionCtx = ctx;    try {    Context initCtx = new InitialContext();    Boolean option = null;    option = (Boolean)initCtx.lookup("java:comp/env/useLocal");    useLocal = option.booleanValue();    option = (Boolean)initCtx.lookup("java:comp/env/doTrace");    doTrace = option.booleanValue();    if (doTrace)    System.out.println("DualSessionBean#setSessionContext: useLocal="    +useLocal);    Object homeObject = null;    if (useLocal){    homeObject = initCtx.lookup("java:comp/env/ejb/DualEntityLocalHome");    entityLocalHome = (DualEntityLocalHome)homeObject;    } else {    homeObject = initCtx.lookup("java:comp/env/ejb/DualEntityRemoteHome");    entityRemoteHome = (DualEntityRemoteHome)    javax.rmi.PortableRemoteObject.narrow(homeObject,    DualEntityRemoteHome.class);    }    } catch(NamingException ne){    // process exception here...    }    }    ...

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

时间:2011-04-23

在 Java 代码中,EJB 环境变量是作为无状态会话 Bean 对象的生命周期的类变量存储的。DualEntity 的本地接口和 Remote Home Interface 是通过引用访问的;这是首选的方式,并且遵守 EJB 2.0 规范。相对地,ejb-jar.xml 包含描述这些引用的 ejb-ref 和 ejb-local-ref 元素。打开 EJB Deployment Descriptor 编辑器,然后选择 Beans 选项卡。确保 JNDI 名设置为“ejb/dual/ejb/DualSessionHome”。然后转到 References 选项卡,确保对 DualEntity 两个引用指向 JNDI 名“ejb/dual/ejb/DualEntityHome”。必要时可以更改这些值,然后保存所作的更改。

Web 模块

DualWebModule03project 标准的 J2EE Web 部署描述符包含两个重要的代码片段。第一个指定该 Servlet 的初始参数:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号