EJB 开发资源

本主题描述 EJB 开发中常用的资源和开发工具。

EJB 模块

EJB 模块显示在 J2EE 透视图的 Project Explorer 视图中,它们与 EJB 项目相对应。

EJB 模块用来将一个或多个企业 bean 组装成单个可部署单元。EJB 模块是在 EJB 项目中开发的,可作为独立的 EJB JAR 文件导出,或者可将它与企业应用程序中的其他 EJB 或 Web 模块组合起来。EJB JAR 文件使用标准 Java™ 归档文件的格式。EJB 模块包含下列内容:

  • 一个或多个企业 bean 及其关联的 .class 和 .java 文件。
  • 图形文件和其他文件,这取决于企业 bean 的需要。
  • 部署描述符。部署描述符的文件类型是“可扩展标记语言”(XML)。此文件声明 EJB 模块的内容,定义模块中 bean 的结构,并提供有关在运行时如何使用 bean 的描述。
  • META-INF 目录中的 MANIFEST.MF 文件。清单文件可以包含类路径条目,带有对 J2EE 企业应用程序中的其他 JAR 文件或 EJB 模块的引用。它定义模块的外部依赖顶。

EJB 模块已安装并在 EJB 容器中运行。

企业 bean 是一个 Java 组件,可以将它与其他资源组合来创建分布式客户机/服务器应用程序。

注: 如果选择为 EJB 模块创建 EJB 客户机 JAR 文件,企业 bean 的客户机接口类将不包括在 EJB JAR 文件中,而是包括在 EJB 客户机 JAR 文件中。
EJB 项目

在工作台中,可以为项目中的企业应用程序创建和维护资源。EJB 项目是允许您组织企业 bean 的逻辑模块。

此工作台支持 EJB 1.1、EJB 2.0 和 EJB 2.1 项目。对于 EJB 2.0 项目,您必须将包含 EAR 项目的 J2EE 规范级别设置为 J2EE 1.3 或更高级别;对于 EJB 2.1 项目,您必须将该规范级别设置为 J2EE 1.4。在 EJB 1.1 项目中,您只能创建 EJB 1.1 bean。

EJB 项目是专用的 Java 项目。与 Java 项目相似,EJB 项目必须具有一个或多个源文件夹,才能包含项目的源文件和输出文件。缺省情况下,源文件夹名为 ejbModule,但是在创建项目或新的源文件夹时,可以更改该名称。当发布或部署项目时,将把文件夹的内容聚集起来。

不能将 EJB 项目用作源文件夹;这样将导致错误。另外,虽然项目中可以有多个源文件夹,但是只有其中一个源文件夹才能包含 META-INF 文件夹,MANIFEST.MF 和部署描述符文件在 META-INF 文件夹中。

注: 如果选择为 EJB 模块创建 EJB 客户机 JAR 文件,企业 bean 的客户机接口类将不包括在 EJB 项目中,而是包括在独立的 EJB 客户机 JAR 项目中。EJB 客户机 JAR 项目作为其他项目节点下的 Java 项目显示在“项目资源管理器”中。
EJB 客户机项目

EJB 工具支持为 EJB 模块创建 EJB 客户机 JAR 项目。EJB 客户机 JAR 项目包含了客户机程序使用 EJB 项目中的企业 bean 所包含的客户机视图而需要的全部接口类。当为 EJB 项目创建 EJB 客户机项目时,会创建新的 Java 项目并将它添加至工作空间。EJB 客户机项目作为项目实用程序 JAR 文件被添加至 EJB 项目所属的每个模块。

缺省情况下,当使用向导创建 EJB 项目时,也创建 EJB 客户机 JAR 项目。然而,您可以在向导中清除此选项。

提示: 还可以将 EJB 客户机项目添加至不包括作为模块的 EJB 项目的另一个企业应用程序中。这将确保导出应用程序时 EJB 客户机 JAR 文件与 EAR 文件一起导出和打包。
企业 bean

企业 bean 是一个 Java 组件,可以将它与其他资源组合来创建分布式客户机/服务器应用程序。

有三种类型的企业 bean:实体 bean、会话 bean 和消息驱动的 bean。通常,在企业应用程序中会同时使用这三种类型的 bean。

实体 bean
实体 bean 存储持久数据。具有容器管理的持久性(CMP)的实体 bean 需要数据库连接。具有 bean 管理的持久性的实体 bean 以在 bean 代码中定义的任何方式来管理持久数据。例如,这可以包括写入数据库或 XML 文件。
会话 bean
会话 bean 不需要数据库访问,虽然它们可以根据需要通过访问实体 bean 来间接获取数据库访问。会话 bean 还可以通过使用资源引用来获取对数据库(和其他资源)的直接访问。
消息驱动的 bean
消息驱动的 bean 是一种特殊的企业 bean,它在 JMS 消息传递系统中充当消息使用者。对标准 JMS 消息使用者而言,消息驱动的 bean 执行基于消息内容的业务逻辑。消息驱动的 bean 实例的动态创建和分配在许多方面模拟无状态会话企业 bean 的行为。然而,消息驱动的 bean 与无状态会话企业 bean(以及其他类型的企业 bean)在许多方面是不同的。
  • 消息驱动的 bean 以异步方式处理多条 JMS 消息,而不是处理已序列化的方法调用序列。
  • 消息驱动的 bean 没有 home 接口或远程接口,所以内部或外部客户机不能直接访问它们。
部署描述符

部署描述符包含配置数据,运行时环境将这些配置数据用于应用程序中。部署描述符可以包含关于下列内容的信息:

  • 应用程序的结构和内容(例如,企业 bean)。
  • 对内部和外部依赖项的引用。例如,EJB 模块中的企业 bean 可能需要未捆绑在同一模块中的另一个企业 bean。
  • 对资源工厂对象(例如,URL 或 JDBC 数据源)的引用。
  • 当实现应用程序必需的访问控制时,容器所使用的安全角色。
  • 有关容器如何(以及是否)管理应用程序的事务的事务性信息。

部署描述符是与应用程序的文件一起打包在 Java 归档文件中的 XML 文件。EJB 部署描述符称为 ejb-jar.xml,位于 EJB 项目的 META-INF 文件夹中。J2EE 应用程序包含一个应用程序级的部署描述符文件,它将应用程序作为整体来管理。它还包含几个组件级的部署描述符,应用程序中的每个模块都有一个部署描述符。