快速业务通道

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

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

... useLocal true doTrace true    ...

上面的代码在意义上类似于前面讨论的 EJB 环境参数。注释掉的 Web 部署描述符部分后面将需要用于分离容器(Separate Containers)拓扑。The Web deployment descriptor section that is commented out will be needed later for the Separate Containers topology. 如果这三个附加的参数没有注释掉,在与此体系结构有关的逻辑将通过该 Servlet 的 init() 方法进行调用。(稍后将对此进行更多的介绍。)第二个代码片段描述了需要用来建立 Servlet 与 EJB 通信的引用:

... ejb/DualSessionRemoteHome Session dual.ejb.DualSessionRemoteHome dual.ejb.DualSessionRemote DualEJBModule02.jar#DualSession ejb/DualSessionLocalHome Session dual.ejb.DualSessionLocalHome dual.ejb.DualSessionLocal DualEJBModule02.jar#DualSession    ...

相对地,DualServlet 的源代码包含该 Servlet 的 init() 方法中的处理逻辑。下面是与处理 EJB 引用有关的代码片段:

...    final String JNDI_NAME_LOCAL = "java:comp/env/ejb/DualSessionLocalHome";    final String JNDI_NAME_REMOTE = "java:comp/env/ejb/DualSessionRemoteHome";    ...    if (useLocal) {    initCtx = new InitialContext();    homeObject = initCtx.lookup(JNDI_NAME_LOCAL);    sessionLocalHome = (DualSessionLocalHome) homeObject;    } else {    homeObject = initCtx.lookup(JNDI_NAME_REMOTE);    sessionRemoteHome =    (DualSessionRemoteHome) PortableRemoteObject.narrow(    homeObject,    DualSessionRemoteHome.class);    }    ...

(下载的源代码中的初始参数处理逻辑实际上更复杂,因为它还处理分离容器(Separate Containers)拓扑。)可以在 DualWebModule03 的 Web Deployment Descriptor 编辑器窗格中,首选选中 DualServlet 的所有设置(包括 Initialization 部分在内),然后转到 References 选项卡,选中 EJB 和 EJB Local 这两个子选项卡。两个引用应该指向 WebSphere Bindings 部分中的JNDI 名“ejb/dual/ejb/DualSessionHome”。

项目依赖性总结

现在我们基本上完成了这些模块,让我们再次回顾一下所有项目(包括 EAR 在内)的依赖性:

?DualJavaModule00 没有依赖性。

?DualEJBModule01 没有依赖性。

?DualEJBModule02 在“Java Build Path”、“Java JAR Dependencies”和“Project References”?设置中必须有 DualJavaModule00、DualEJBModule01 项目。

?DualWebModule03 在“Java Build Path”、“Project References”和“Web Library Projects”设置中必须有 DualJavaModule00、DualEJBModule02 项目。

?DualEARForEJBContainer 在“Project References”设置中必须有 DualJavaModule00、DualEJBModule01、DualEJBModule02;EAR 部署描述符必须有指向 EJB 模块和 Java 模块的引用。

?DualEARForAllInOne 必须有指向所有模块

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号