EJB 3.x 模块注意事项

在使用 Enterprise JavaBeans (EJB) 3.x 模块时,请留意以下注意事项。

V8.0 在 EJB 3.x 级别模块中不支持 1.x 和 2.x 实体 Bean

IBM®WebSphere® Application Server V8.0 不支持使用 EJB 3.x 级别模块中的 1.x 和 2.x Bean 管理的持久性 (BMP) 和容器管理的持久性 (CMP) 实体 bean。V8.0 上可使用 EJB 实体 bean,但必须将它们打包在 EJB 2.1 或更低级别的模块中。

和 EJB 3.x 级别模块中的 EJB 实体 Bean 一起打包的 Java™ Platform, Enterprise Edition (Java EE) 应用程序在 V8.0 上安装失败。

无论出现下列哪种情况,都要将 EJB Java 归档 (JAR) 文件看做 EJB 3.x 模块:
  • EJB JAR 文件包含带有 EJB 3.0 或 EJB 3.1 头规范的 ejb-jar.xml 文件中的配置数据。例如:
    <ejb-jar id="ejb-jar_ID" version="3.0"
          xmlns="http://java.sun.com/xml/ns/javaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
  • EJB JAR 文件包含的 Bean 带有提供配置数据的 EJB 3.x 样式的源注释,但是不包含 ejb-jar.xml 部署描述符文件。

您需要使用 EJB 2.x 及更低版本的模块重新打包 EJB 3.x 模块。否则,安装任何包含实体 bean 的应用程序都会失败。

注释

请考虑使用注释和/或部署描述符。请参阅“EJB 3.x 元数据注释”主题,以了解有关注释的更多信息。

EJB 模块

WebSphere Application Server V8.0 支持带有 1.1、2.0、2.1、3.0 或 3.1 级别中声明的 ejb-jar.xml 部署描述符或不带 ejb-jar.xml 部署描述符的 EJB 模块 Java 归档 (JAR) 文件。如果不存在部署描述符,那么假设 EJB 模块处于 3.0 或更高级别。

必须声明包含 EJB 3.x Bean 的 EJB 模块处于 EJB 3.0 或 EJB 3.1 级别。这可通过将 ejb-jar.xml 部署描述符级别设置为 3.0 或 3.1,或通过确保该模块不包含 ejb-jar.xml 部署描述符来实现。如果模块级别是 2.1 或更低级别,那么将不会执行 EJB 3.x 特定的功能,例如注释扫描或资源注入。

实体 Bean 在 EJB 3.x 级别模块中不受支持。您必须将所有实体 Bean 放置在 2.1 或更低级别的 EJB 模块中。

如果要使用部署描述符封装 EJB 3.x 模块,可用若干种方法实现此目的。将 EJB 3.x 模块与 EJB 3.x 样式会话 Bean 和消息驱动的 Bean 专门封装在一起、与 EJB 2.1 样式会话 Bean 和消息驱动的 Bean 专门封装在一起或者与 2.1 和 3.x 类型 Bean 封装在一起。XML 部署描述符必须是 V3.0 或 3.1 部署描述符。必须将 2.1 实体 Bean 封装在具有 2.1 部署描述符的模块中。包含 EJB 3.x Bean 的 EJB 模块在该产品上运行时,此模块必须位于 EJB 3.0 或 EJB 3.1 规范级别。通过将 ejb-jar.xml 部署描述符级别设置为 3.0 或 3.1 来准备 EJB 模块以支持 EJB 3.x Bean,或者确保该模块不包含 ejb-jar.xml 部署描述符。如果模块级别是 EJB 2.1 或更低,那么在运行时将不执行任何 EJB 3.x 功能(包括注释扫描或资源注入)。

Java EE 应用程序客户机模块

此产品提供对 Java EE 应用程序客户机模块的支持。另外,如果通过 @EJB 注释定义了插入,那么它还支持将 EJB 引用插入客户机组件。

注意: EJB 3.x 不支持插入创建自身企业 Bean 的企业 Bean。不要插入创建自身企业 Bean 的企业 Bean。

从 Java EE 客户机组件描述符中定义到 EJB 3.x 业务接口的 ejb-ref 引用

可以从指向 EJB 3.x 业务接口的 application-client.xml 描述符中定义 ejb-ref。无需使用主用户名就可直接访问 EJB 3.x 业务接口,但是在 Java EE 中的 ejb-ref 元素要求指定 Home 接口类型。因此,必须将 <home></home> 节包含在 ejb-ref 定义中,但是应指定空值,如示例所示。对于 <remote> 节的值,请指定 EJB 3.x 业务接口类名。最后,在执行应用程序安装期间设置绑定值或通过工具来设置绑定值时,请指定 EJB 3.x 业务接口所绑定至的位置。

例如,客户机组件 application-client.xml 文件中 ejb-ref 与以下代码样本类似:
<ejb-ref id="EJBRef_1">
	<ejb-ref-name>java_comp-env_name_of_ref</ejb-ref-name>
	<ejb-ref-type>Session</ejb-ref-type>
	<home></home>
	<remote>com.ejbs.business.interface.class.name</remote>
</ejb-ref>
ibm-application-client-bnd.xmi 文件的对应部分与以下代码样本类似。在此处使用了缺省 EJB 绑定模式;在“EJB 3.x 应用程序绑定支持”主题中描述了缺省 EJB 绑定约定。
<ejbRefBindings xmi:id="EjbRefBinding_1"
         jndiName=EJB3App/EJB3Mod.jar/MyBean##com.ejbs.business.interface.class.name">
	<bindingEjbRef href="application-client.xml#EjbRef_1"/>
</ejbRefBindings>

指示主题类型的图标 参考主题



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