快速业务通道

同时托管J2EE应用程序的多个版本 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
了做到这一 点,您必须将应用程序分成多个 .ear 文件。在我们的样本应用程序中,图 9 显示的 EAR 文件被分成下面几个部分:每个版本的 EJB 有一个 .ear 文件(请参见图 10 和 11 )、每个版本的 Web 应用程序的 .ear 文件包含多个版本的 .war 文件、每个版本的 Web 应用程序(请参见图 12)。

图 10 给出了 Account EJB 版本 1 的 .ear 文件。注意其中有两个 JAR 文件:

MyBankCMPEJBv1 包含 Account EJB 版本 1 的特定接口和实现。

MyBankCMPEJBCommonUtility 包含版本 1 和版本 2 中共用的接口和实现,以及 Transfer EJB,并且 Transfer EJB 在从版本 1 到版本 2 的变化中不会发生任何变化。

类似的,图 11 给出了 Account EJB 版本 2 的 .ear 的组成。相同的 .jar 文件 MyBankCMPEJBCommonUtility 被封装到 MyBankCMPEJB [v1|v2] EAR 的两个版本中。

图 12 给出了 Web .ear 文件的组成,以及 MyBankCMPWebv1.war 和 MyBankCMPWebv2.war (包括特定于版本的 CreateAccount servlet)和 MyBankCMPWebCommon (包括和版本无关的 TransferFunds servlet)。

图 10. 应用程序 EAR EJB 版本 1 的组成

同时托管J2EE应用程序的多个版本 - 编程入门网

同时托管J2EE应用程序的多个版本(8)

时间:2011-04-02 IBM Indrajit Poddar

图 11. 应用程序 EAR EJB 版本 2 的组成

同时托管J2EE应用程序的多个版本 - 编程入门网

图 12. Web EAR 的组成

同时托管J2EE应用程序的多个版本 - 编程入门网

通过这种方法拆分应用程序可以使不同版本的 EJB 组件隔离开来,这种隔离是通过使 用不同的应用程序类加载器实现的,一个 EAR 文件对应一个类加载器。不同版本的 Web 组件模块通过不同的 WAR 类加载器而隔离开来,一个 Web 模块对应一个 WAR 类加载器 。由于 WAR 类加载器是应用程序类加载器的子类,所以所有版本的 Web 模块都可以封装 在同一个企业应用程序中。为了使应用程序类加载器或 Web 类加载器可以加载通用的实 用程序类 JAR 文件,就必须在类路径头部指定这些 JAR 文件依赖于 EJB JAR 或 WAR 清 单文件(manifest file)。样本 7 给出了 MyBankCMPEJBv1.jar 中的清单文件的例子; 样本 8 给出了 MyBankCMPWebv1.war 中的清单文件的例子。

同时托管J2EE应用程序的多个版本(9)

时间:2011-04-02 IBM Indrajit Poddar

样本 7. MyBankCMPEJBv1.jar 中用于指定相关 JAR 文件的清单文件 Manifest-Version: 1.0 Class-Path: MyBankCMPEJBCommonUtility.jar

样本 8. MyBankCMPWebv1.war 中用于指定相关 JAR 文件的清单文件 Manifest-Version: 1.0 Class-Path: MyBankCMPEJBCommonUtility.jar MyBankCMPEJBv1Utility.jar My BankCMPWebCommonUtil.jar

图 13. 在 WebSphere 应用程序服务器 V5 中配置共享类库

同时托管J2EE应用程序的多个版本 - 编程入门网

为了使 Web 应用程序能够调用 EJB JAR 组件,需要将 Web 应用程序中使用的 java:comp/env EJB 引用绑定到适当版本的 EJB 本地接口的 JNDI 名。如果 Web 应用程 序组件和 EJB 组件通过不同的类加载器来加载,那么 EJB 组件的本地接口是不能使用的 。您必须使 EJB 远程接口的客户端类对应用程序类加载器可用。这可以通过两种方式来 得以实现:

EJB 远程接口客户端类可以作为实用程序 JAR 文件封装到 Web EAR 文件中,并且可 以通过修改用于每个 Web 应用程序 WAR 文件的清单文件,在类路径头部下面添加 EJB 客户端类实用程序 JAR 文件。(请参见样本 8)。

将 EJB JAR 作为共享的类库添加到 Web WAR EAR 应用程序中。

跟踪分布式组件的变化

当将多个版本的 J2EE 应用程序组件部署到同一个 WebSphere 域中时,为了安全起见 ,应该进行一些运行时检查。另外,保留对部署模块版本变化的跟踪记录也是一种可行的 做法。 Java Product Versioning Specification 将 Java 包定义为一个可以开发、封 装、验证、升级及分布式的一致性单元。JAR 文件的清单文件(

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