EJB 模块

Enterprise JavaBeans (EJB) 模块用来将一个或多个企业 Bean 组装成单个可部署单元。EJB 模块存储在标准 Java™ 归档 (JAR) 文件中。

EJB 模块包含下列内容:

您可以将 EJB 模块部署为独立应用程序,或将它与其他 EJB 模块或 Web 模块相结合,以创建 Java 应用程序。EJB 模块在企业 Bean 容器中安装和运行。

如果要使用部署描述符封装 EJB 3.x 模块,可用若干种方法实现此目的。可以将 EJB 3.x 模块与 EJB 3.x 类型会话 Bean 和/或消息驱动的 Bean 专门封装在一起、与 EJB 2.1 类型会话 Bean 和/或消息驱动的 Bean 专门封装在一起或者与 2.1 和 3.x 类型 Bean 封装在一起。XML 部署描述符必须是 V3.x 部署描述符。必须将 2.1 实体 Bean 封装在具有 2.1 部署描述符的模块中。

当包含 EJB 3.x Bean 的 EJB 模块在该产品上运行时,必须处于 EJB 3.x 规范级别。要设置 EJB 模块以支持 EJB 3.x Bean,您可以将 ejb-jar.xml 部署描述符级别设置为 3.0 或 3.1,也可以确保该模块不包含 ejb-jar.xml 部署描述符。如果模块级别是 EJB 2.1 或更低,那么在运行时将不执行任何 EJB 3.x 功能(包括注释扫描或资源注入)。

有关 EJB 3.x Bean 封装和部署的更多信息,请参阅“EJB 3.x 模块打包概述”主题。

本地客户机视图

EJB 规范仅要求打包在同一应用程序中的 EJB 支持本地客户机视图。这包括本地 home 接口、本地业务接口和非接口视图。该产品允许访问打包在单独的应用程序中的 EJB 的本地客户机视图,但是有一些限制:
  • 本地接口以及本地接口所使用的所有参数类型、返回类型和异常类型必须对于执行调用的应用程序和目标 EJB 应用程序的类装入器都可视。这可以通过使用与服务器类装入器相关联的共享库或者使用与两个应用程序都相关联的独立共享库来确保实现。请阅读“创建共享库”主题以了解更多信息。
  • 当目标 EJB 应用程序已停止时,必须刷新对于 EJB 的任何已高速缓存的引用。您可以完成下列其中一项操作:
    • 重新启动执行调用的应用程序。最简单的解决方案是,每当重新启动执行调用的应用程序所依赖的目标 EJB 应用程序时,就重新启动该应用程序。
    • 从 JNDI 获取新的引用。缺省情况下,会高速缓存从 Java 名称空间进行的 JNDI 查询,并且必须禁用或者清除高速缓存之后才能获得新的引用。请阅读“开发使用 JNDI 的应用程序”主题以了解更多信息。

      当目标 EJB 应用程序已停止时,EJB 方法调用将抛出 com.ibm.websphere.ejbcontainer.EJBStoppedException。如果您已使用 @EJB 注入或者 JNDI 查询对实例变量中的 EJB 引用进行高速缓存,那么您可以捕获此异常,并通过执行未高速缓存的查询来刷新 EJB 引用。

    • 为目标 EJB 应用程序启用间接本地 EJB 代理。这将导致重新启动该应用程序时会自动刷新本地 EJB 代理。启用间接本地代理会对每个 EJB 方法调用导致一些额外开销。

      可以使用诸如管理控制台来启用间接本地代理。单击应用程序 > 应用程序类型 > WebSphere 企业应用程序 > application_name > 定制属性 > 新建。为定制属性指定名称 com.ibm.websphere.ejbcontainer.indirectLocalProxies 和值 true,然后应用并保存更改。


指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cejb_emod
文件名:cejb_emod.html