| | 索引 | |
Sun ONE Application Server 7 Enterprise Java Bean 技术开发者指南 |
Sun ONE 应用服务器 Enterprise JavaBean 技术介绍本节概述 Java 企业版 (J2EE) Enterprise JavaBeans (EJB) 技术在 Sun ONE Application Server 7 的应用程序编程模型中的工作方式。
注意 如果您不熟悉 EJB 技术,请参阅 Java 软件教程:
以及 J2EE 规范:
关于 Sun ONE 应用服务器的概述资料包含在 Sun ONE 应用服务器产品介绍中。
本节介绍以下主题:
以下位置包含有随 Sun ONE 应用服务器一起提供的相关文件:
EJB 2.0 更改摘要
Sun ONE 应用服务器支持 Enterprise JavaBeans Specification 2.0 定义的 Sun Microsystems Enterprise JavaBean (EJB) 体系架构,并且与 Enterprise JavaBeans Specification 1.1 兼容。
注 您可以在 Sun ONE 应用服务器中部署现有 1.1 Bean,但我们建议按 2.0 Enterprise Bean 部署新 Bean。
本节概述 Enterprise JavaBeans Specification 2.0 中影响 Sun ONE 应用服务器环境中 Enterprise Bean 的更改:
- 容器管理的持久性 - 提供一种处理容器管理持久性的新方法。请参阅“将容器管理持久性用于实体 Bean”。
- 容器管理的关系 - 使您可以定义实体 Bean 之间的关系。请参阅“组装和部署 Enterprise Bean”。
- 消息驱动型 Bean - 这种新的 Enterprise Bean 类型属于“Java 消息服务”使用者。“使用消息驱动型 Bean”。
- 本地接口 - 会话和实体 Bean 可以实施一种本地接口。容器管理 EJB 关系现在就基于该本地接口。请参阅“创建一个本地接口”。
- home接口上的其他方法 - 使您可以实施独立于特定实体 Bean 实例的业务逻辑。请参阅“创建远程home接口”。
- 新查询语言 (EJB QL - 新的 EJB 查询语言 (EJB QL) 允许在整个由容器管理关系定义的实体 Bean 网络之间进行导航。请参阅“使用 EJB QL”。
EJB 体系架构
Sun ONE 应用服务器通过自动支持中间件服务(如事务处理、安全数据库连接,等等),减少开发中间件的复杂性。
下图说明把 Enterprise Bean 装配在 J2EE 环境中的什么位置。在此图中,客户机运行 Web 浏览器或应用程序客户端,J2EE 服务器运行着Sun ONE 应用服务器程序,而数据库服务器运行着数据库管理软件,例如,Oracle 和 LDAP。Enterprise Bean 驻留在业务层,由 JSP(和servlet)提供连接客户端层的接口,而 Sun ONE 应用服务器管理客户端和数据库机器之间的关系。
Sun ONE 应用服务器负责提供 EJB 执行系统的基础,EJB 执行系统包括:
下图说明 J2EE 环境的更多详细信息。业务逻辑层显示 EJB 流。
增值特性
Sun ONE 应用服务器提供许多与 EJB 开发相关的价值增加特性。这些功能将在以下各节讨论(包括更加深入的资料的参考):
只读 Bean
Sun ONE 应用服务器提供的另一个特性是只读 Bean - EJB 客户端从不修改的实体 Bean。只读 Bean 可完全避免数据库更新。
只读 Bean 可用于caching(其他 Bean 从外部)频繁访问但极少更新的数据库。当另一个 Bean 更新只读 Bean caching的数据时,可以通知只读 Bean,以便刷新其只读 Bean。
Sun ONE 应用服务器提供可以刷新只读 Bean 状态的许多方法。通过设置 refresh-period-in-seconds 元素和 Bean 的事务属性,很容易配置 (a) 始终刷新、(b) 定期刷新、(c) 从不刷新或(d) 计划刷新的只读 Bean。
只读 Bean 最适合于基本数据从不变化或不频繁变化的情形。有关详细信息和使用原则,请参阅“只读 Bean”。
pass-by-reference
sun-ejb-jar.xml 文件中的 pass-by-reference 元素使您可以指定 Enterprise Bean 使用的传递参数的方法。这是一个提高性能的机会。请参阅“pass-by-reference”。
Pooling和caching特性
Sun ONE 应用服务器提供一种高度可配置的 Bean pooling机制,该机制使部署者可以根据企业需要配置 Bean 池。
另外,Sun ONE 应用服务器支持许多可调整的参数,这些参数可用于控制缓存的 Bean 的数目,以及控制缓存这些 Bean 的持续时间。引用表中同一数据库行的多个 Bean 实例也可以被缓存。
有关此功能的信息,请参阅“pooling和caching”。
监视
Sun ONE 应用服务器支持监视运行时环境的许多方面,其中包括可用于调试您的应用程序的正确性以及调整其性能的 EJB 容器的各种元素。
有关监视的详细信息,请参阅 Sun ONE 应用服务器管理员指南(“监视和管理 Sun One 应用服务器”一节)以及性能调整和大小调整指南。
与 Sun ONE Studio 4 集成
Java 用 Sun ONE Studio 4 企业版(旧称 Java 用 Forte [FFJ] 企业版)是一种集成式开发环境 (IDE),它使您可以从单个易用界面创建、组装、部署和调试 Sun ONE 应用服务器中的代码。在幕后,有一个插件将 Sun ONE Studio 4 IDE 与 Sun ONE 应用服务器集成在一起。
有关使用 Sun ONE Studio 4 的详细信息,请参阅 Sun ONE Studio 4 企业版指南和“使用 Sun ONE Studio 4 进行 CMP 映射”。
动态部署和重新加载
您可以部署、重新部署和撤除部署一个应用程序或独立模块。如果是在服务器运行时执行此操作,就视为动态部署。下面的动态过程可以在 Sun ONE 应用服务器中使用:
有关动态部署的详细信息,请参阅 Sun ONE 应用服务器开发指南和管理指南。
关于 Enterprise JavaBean
如果您已经熟悉 Enterprise Bean 以及它们如何工作,您可能更希望继续学习“关于开发有效的应用程序”
本节讨论以下主题:
- 什么是 Enterprise JavaBean?
- Bean 的类型
- EJB 流
- EJB 容器
- 接口
- pooling和caching
- Enterprise Bean 如何访问资源
- 事务管理
- 应用程序安全机制工作方式
什么是 Enterprise JavaBean?
Enterprise Bean 或 Enterprise JavaBean (EJB) 是一种独立的、可复用组件,该组件包含数据成员、属性和方法。每个 Enterprise Bean 都包含一个或多个应用程序任务或对象,包括数据结构和操作方法。.
- Enterprise Bean 方法可接受参数,并返回返回值。
- Enterprise Bean 创建和管理是在运行时由容器处理的。
- 客户端访问协调是由容器和部署 Bean 的服务器处理的。
- Enterprise Bean 仅限于使用 Enterprise JavaBeans Specification 2.0 定义的标准容器服务。这可保证 Bean 在任何符合 EJB 容器中都是兼容的。
- Enterprise Bean 是无需重新编译即可组装到一个符合应用程序之中的组件。
- 客户端的 Bean 定义视图完全受 Bean 开发者控制。该视图不受运行 Bean 的容器或部署有 Bean 的服务器影响。
出于多种原因,Enterprise Bean 简化了大型分布式应用程序的开发。
- 容器提供的服务 - 由于 EJB 容器可为 Enterprise Bean 提供系统级服务,因而 Bean 开发者可集中精力解决业务问题。EJB 容器 - 而不是 Bean 开发者 -负责系统级服务,如事务管理和安全授权。
- 远程客户端 - 由于是 Enterprise Bean(而不是客户端)包含应用程序业务逻辑,客户端开发者可集中精力表现客户端。客户端开发者不必编写实施业务规则或访问数据库的例程的代码。因此,开发的客户端较瘦,这是一个对于在小型设备上运行的客户端特别重要的优点。
- Bean 可复用性 - 由于企业 Bean 是可移植组件,因此应用程序组装程序可以从现有 Bean 中构建新的应用程序。这些应用程序可在任何符合 J2EE 的服务器上运行。
Bean 的类型
有三种完全不同的 Enterprise bean 类型:
- 会话 Bean, 有状态或无状态
有状态会话 Bean 用于表现在调用之间维持状态的对象和进程,例如要编辑的文档副本或用于个别客户端的专用业务对象。
无状态的会话 Bean 包含不在调用之间维持状态的特定客户端所需的瞬时或临时业务逻辑。
有关开发会话 Bean 的信息,请参阅“使用会话 Bean”。
- 实体 Bean - 实体 Bean 通常表现直接在数据库中维护或作为对象通过企业信息系统 (EIS) 应用程序访问的持久性数据。
Bean 管理持久性 - Bean 负责其自己的持久性。您所编写的实体 Bean 代码包含访问数据库的调用。有关以常规持久性,尤其是 Bean 管理持久性开发实体 Bean 的信息,请参阅“使用实体 Bean”。
容器管理持久性 - Enterprise Bean 容器通过持久性管理器进行交互,处理实体 Bean 所要求的所有数据库访问。有关容器管理持久性的信息,请参阅“将容器管理持久性用于实体 Bean”。
- 消息驱动型 Bean - 消息驱动型 Bean 表现有状态服务;消息驱动型 Bean 实际上是一种 JMS 调用的异步消息使用者,完全异步,没有客户端可看到的身份。
有关开发消息驱动型 Bean 的信息,请参阅“使用消息驱动型 Bean”。
EJB 流
当用通过浏览器调用某个 Sun ONE 应用服务器中的servlet时,servlet可以调用一个或多个 Enterprise Bean。例如,servlet可以把 JavaServer Page (JSP) 加载到用户的浏览器,以便请求用户名和密码,然后将用户输入传递到一个会话 Bean,以便验证输入。
接受有效用户名和密码组合之后,servlet可能实例化一个或多个实体和会话 Bean,才能运行该应用程序的业务逻辑,然后才终止。Bean 本身可能实例化其他实体或会话 Bean,以便进行进一步的业务逻辑和数据处理。
示例方案
某个servlet调用使客户服务代表可以访问一个订单数据库的会话 Bean。此访问可能包括以下功能:
作为客户订购过程的组成部分,servlet创建一个会话 Bean,该会话 Bean 管理一个临时跟踪客户选定的商品的购物车。订购完成后,购物车数据传输到订单数据库,并释放购物车会话 Bean。
EJB 容器
Enterprise Bean 始终在容器的上下文内工作。容器可作为 Enterprise Bean 和服务器之间的链接。EJB 容器允许利用您自己的组件以及其他供应商提供的组件构建分布式应用程序。
通过该容器,Sun ONE 应用服务器提供高水平的事务管理、安全管理、状态管理(持久性)、多线程处理以及资源pooling包装,因而免于您必须了解低水平 API 细节。通过处理并行操作,容器可使您免于担心存在同时访问某个 Enterprise Bean 的实体(即“线程”)。此容器提供 Enterprise JavaBeans Specification 2.0 说明的所有标准容器服务,同时还提供针对 Sun ONE 应用服务器的附加服务。
Sun ONE 应用服务器包括远程访问、命名服务、安全服务、并行操作、事务控制以及数据库访问。下表显示 Sun ONE 应用服务器提供的 EJB 容器。
接口
客户端从不直接访问会话或实体 EJB 实例。相反,客户端使用 Bean 的远程接口访问 Bean 实例。实施一个 Bean 的远程接口的 EJB 对象类是由容器提供的。
home接口
home接口提供一种供客户端创建、删除并查找 EJB 的机制。EJB 为扩展 EJB 规范中定义的 javax.ejb.EJBHome 接口的容器提供一个home接口。最基本的是,home接口为创建 Bean 的每种方法定义零个或多个 create 方法。
实体 Bean 必须为可用于查找 Bean 或 Bean 集合的各个方法定义查找程序方法。
远程接口
远程接口(以及远程home接口)为远程客户端提供一种访问会话 Bean 或实体 Bean 的方法。远程客户端可以是同一容器或不同容器或 Java 程序(如应用程序、小程序或servlet)中部署的另一个 EJB。一个 EJB 的远程客户端视图具有位置独立性,并可映射到非 Java 客户端环境。
远程home接口是由 EJB 开发者定义的,并由 EJB 容器实施。
本地接口
本地接口(以及本地home接口)为位于具有会话或实体 Bean 的同一 Java 虚拟机 (JVM) 中的客户端提供一种访问该 Bean 的机制。这可提供本地客户端视图。本地客户端可以与关联 Bean 紧密地耦合在一起;会话 Bean 和实体 Bean 可以拥有多个本地客户端。
容器提供实施本地home接口和本地接口的类。实施这些接口的对象为本地 Java 对象。一个 EJB 的本地客户端视图不受位置限制。
下图显示通过容器中两个 Enterprise Bean 内的本地接口连接的本地客户端。
可以在开发期间为一个 Bean 定义本地接口,这样才能在某个调用者处于同一容器时对 Bean 进行简化调用。
pooling和caching
Sun ONE 应用服务器的 EJB 容器pooling匿名实例(消息驱动型 Bean、无状态会话 Bean 和实体 Bean),以减少创建和毁坏对象的额外开销。EJB 容器维护对于部署的每个 Bean 的自由池。自由池中的实例没有身份(即没有关联的主键),用来服务于home接口的方法调用。自由 Bean 也用于服务于无状态会话 Bean 的所有方法。
运行 ejbCreate 和业务方法之后,自由池中的 Bean 实例从“pooling”状态转换为“caching”状态。可以使用 server.xml 和 sun-ejb-jar.xml 文件中与池相关的属性控制每个池的大小和行为。
EJB 容器把“有状态”实例(有状态会话 Bean 和实体 Bean)caching在内存中,以提高性能。EJB 容器为部署的每个 Bean 维持一个caching。
为实现可扩展性,容器将有选择地从caching中收回一些 Bean 实例,通常是在caching溢出的时候。这些收回的 Bean 实例返回到自由 Bean 池。可以使用 server.xml 和 sun-ejb-jar.xml 文件中与caching相关的属性控制每个caching的大小和行为。
pooling和caching sun-ejb-jar.xml 文件的参数将在“pooling和caching元素”。
pooling参数
Sun ONE 应用服务器pooling的最重要参数之一是 steady-pool-size.。如果把 steady-pool-size 设置为大于 0 的值,容器不仅会以指定数目的 Bean 预先填充 Bean 池,而且还会试图确保自由池中始终有这么多 Bean。这可确保有足够现成 Bean 服务于处理用户请求的状态。
另一个参数 pool-idle-timeout-in-seconds 使管理员可以指定某个 Bean 实例在池中的空闲时间数量。如果把 pool-idle-timeout-in-seconds 设置为大于 0 的值,容器就会删除/毁坏在此指定持续时间期间空闲的任何 Bean 实例。
caching参数
Sun ONE 应用服务器使用 commit-c 选项完全避免caching实体 Bean 的方法。如果 Bean 的访问次数很大,但却很少重复利用,Commit-c 选项尤其有用。有关其他信息,请参阅“Commit 选项”。
Sun ONE 应用服务器caching可以是绑定的,也可以是未绑定的。绑定的caching对其可以容纳的 Bean 的数目有限制,超出这个限制就会钝化 Bean。对于有状态的会话 Bean,caching溢出发生时,有三种选取受害 Bean 的方法(LRU、NRU 和 FIFO)。也可以把caching配置为钝化要钝化的空闲(在指定持续时间内未被访问)Bean。
Enterprise Bean 如何访问资源
Enterprise Bean 可以访问多种资源,其中包括数据库、JavaMail 会话、JMS 对象以及 URL。J2EE 平台提供允许您以相似方式访问所有这些资源的机制。
本节讨论以下内容:
JNDI 连接
J2EE 组件定位它们需要通过调用 Java 命令和目录接口 (JNDI) API 的 lookup 方法l访问的对象。此调用返回的值表现调用者希望访问的对象。如果是 Enterprise Bean,lookup 调用返回 Bean 的home接口的对象引用。此引用可用于 EJB home接口上的所有未来的调用。
Context initial = new InitialContext();
Object objref
initial.lookup("java:comp/env/ejb/CompString");服务器上希望访问一个已部署 Enterprise Bean 的 J2EE 组件(JSP、servlet或 Enterprise Bean)在其指定此访问的部署描述符中使用一个 EJB 引用元素。EJB 引用在部署时被映射到与该组件希望访问的 Enterprise Bean 相对应的 JNDI 名称。此映射作用是把访问 Enterprise Bean 的组件从所访问的 Bean 的 JNDI 名称分离开来。因此,与一个 EJB 主页捆绑的 JNDI 名称可能会在部署时被更改,而且不需要调用者的更改代码。
数据库连接
Enterprise Bean 的持久性类型确定您将是否对访问数据库的连接例程进行编码。
- 对于访问数据库并且不使用容器管理持久性的 Bean - 您负责编写持久性代码。这样的 Bean 包括使用 Bean 管理持久性和会话 Bean 的实体 Bean。
- 对于使用容器管理持久性的 Bean - 连接例程是在部署时为您生成的。仅适用于实体 Bean。
URL 连接
统一资源地址 (URL) 在 Web(如网页)上指定资源位置。然后,可以把这些 URL 映射到 JNDI 名称,这样开发者就可以查找 URL。
事务管理
通过把应用程序的工作分成若干称为事务的单元,您就不必处理数据库故障恢复和维护数据库完整性这样的复杂问题。
作为开发人员,您可以选择使用 EJB 代码中的编程事务划分(Bean 管理)还是使用或说明性划分,实施事务管理的负担落在 EJB 容器和 Sun ONE 应用服务器上。该容器和该服务器在事务管理器与一个数据库系统或 Sun ONE 消息队列提供者之间实施必需的低级事务协议,如二阶段承诺协议。
有关事务处理的信息,请参阅“利用 Enterprise Bean 处理事务”。
应用程序安全的工作原理
J2EE 应用程序编程模式使开发者与应用程序安全的针对机制的实施细节隔开。一般来说,容器提供安全基础结构的实施。J2EE 以一种增强应用程序可移植性的方法提供这种隔离,从而无需再进行编码,即可把它们部署在不同的安全环境中。
应用程序中使用的说明性安全机制是用部署描述符表达的。然后,部署者就可以使用特定 Sun ONE应用服务器工具把一个部署描述符中的应用程序要求映射到容器实施的安全机制中。
有关详细信息,请参阅“开发安全的 Enterprise Bean”。有关安全领域的信息,请参阅 Sun ONE 应用服务器开发者指南。
关于开发有效的应用程序
把一个 Sun ONE 应用服务器应用程序的业务逻辑和数据处理划分为最有效的servlet集、JSP、会话 Bean、实体 Bean 和消息驱动型 Bean 是开发者工作的顶点。没有针对包含 Enterprise Bean 的面向对象设计的具体规则。但实体 Bean 实例倾向于长命、持久和在客户端之间共享,而会话 Bean 实例则倾向于短命,并只由单个客户端使用;消息驱动型 Bean 作为 JMS 消息的唯一异步接收者,属于其自己的类别。
一般来说,您的目标是创建一个有效平衡对于执行速度的需要以及对于共享(应用程序和客户端内)Enterprise Bean 以及在服务器之间容易地部署应用程序的需要。
以下几节介绍有助于您在 Sun ONE 应用服务器中开发 Enterprise Bean 的高级信息和准则:
创建 Enterprise Bean 的一般过程
本节中的步骤概述创建 Enterprise Bean 的一般过程。关于创建各种类型 Enterprise Bean 的具体说明包含在以下几个步骤所引用的各节中。
要创建 Enterprise Bean:
- 为所有 Enterprise Bean 的文件创建一个目录。
- 确定您所创建的 Enterprise Bean 的类型:
- 会话 Bean(请参阅“开发会话 Bean”。)
- 实体 Bean(请参阅“开发实体 Bean”。)
- 具有容器管理持久性(请参阅“使用容器管理持久性”。)
- 消息驱动型 Bean(请参阅“开发消息驱动型 Bean”。)
- 根据 EJB 规范为 Enterprise Bean 编写代码,包括:
- 编译接口和类。
- 创建 META-INF 目录以及 Enterprise Bean 的其他结构要求。
- 创建部署标识符文件 ejb-jar.xml 和 sun-ejb-jar.xml。(请参阅“组装和部署 Enterprise Bean”。)
如果某个 Bean 是一个具有容器管理持久性的实体 Bean,您还必须创建一个 sun-cmp-mappings.xml 文件和一个 .dbschema 文件。(请参阅“使用容器管理持久性”。)
- 如果需要,请把该类和 XML 文件封装到一个 JAR 文件中。如果目前正在使用目录部署,这就仅是一个可选选择。
- 部署 Bean 本身,或将其包含在一个 J2EE 应用程序。(请参阅 Sun ONE 应用程序服务器开发者指南。)
最好按照 Sun ONE 应用程序服务器开发者指南中所述方法,使用验证工具验证这些文件的结构。
Bean 使用准则
决定应用程序的哪些部分作为实体 Bean 的候选者,以及哪些部分作为会话 Bean(有状态或无状态)的候选者,否则消息驱动型 Bean 将会极大地影响应用程序的有效性。一般来说:
- 使用有状态 Bean 存储与用户会话状态(即单个用户特有的状态)相对应的非共享数据。
- 使用无状态会话 Bean 访问数据或执行事务性操作。
- 创建任务焦点面窄的小型一般会话 Bean。理想的情况是,这些 Enterprise Bean 包含在许多应用程序中使用的行为。
- 让应用程序组装程序将包含您的表现逻辑(servlet和 JSP)的 Enterprise Bean 共同位于同一服务器。这会在应用程序运行时减少远程过程调用 (RPC) 的数目。
- 当不再需要 Bean 时,应用程序应使用 ejbRemove 方法明确删除这些 Bean,因此可减少在容器上的额外开销(通过消除钝化过程)。
- 唯一命名在不同应用程序中的 Enterprise Bean 之间是可选的,尽管不需要在一个应用服务器实例的上下文内对应用程序进行唯一命名。也就是说,一个应用程序内的 Enterprise Bean 不能具有相同的名称。
有关 EJB 开发者准则的其他信息,请参阅“使用会话 Bean”、“使用实体 Bean”以及“使用消息驱动型 Bean”。
客户端视图准则
选择使用本地接口还是远程接口是一个开发者在开发 Enterprise Bean 时要做出的设计决策。确定应该使用本地编程模型还是远程编程模式时,都应该考虑以下事实:
- 远程编程模式就部署而言,具有位置独立性和灵活性。客户端和 Enterprise Bean 都是松散耦合的。
- 远程调用需要 pass-by-value,因而在调用者和被调用者之间提供一个隔离层。这可防止无意中修改数据。
- 对于本地对象,pass-by-reference 是可选的,而且不是 J2EE 规范所规定的。
- 远程调用有可能非常昂贵。
- 远程调用要求作为参数传递的对象是可序列化的。
- 窄化远程类型需要使用 javax.rmi.PortableRemote.Object.narrow,而不是 Java 语言造型。
- 远程调用涉及本地调用中不期望有的错误情况。客户端必须明确地为这些远程异常编写处理程序。
- 由于远程编程会产生额外开销,因此,远程编程一般用于粒度较粗的组件访问。
- 本地调用可能涉及 pass-by-reference。可以对客户端和 Bean 进行编程,以便依靠 pass-by-reference 语义。本地调用表示必须使本地客户端和 Enterprise Bean 共处。
- 由于本地编程提供对一个组件的较为轻量级的访问,所以本地编程可支持粒度较细的组件访问。
- 留意可能共享通过本地接口传递的对象。
有关其他信息,请参阅 Enterprise JavaBeans Specification 2.0。
远程接口或本地接口准则
在所有面向对象的开发中,您都必须确定您的业务逻辑和数据处理所需的粒度水平。粒度水平指把一个应用程序分为多少块。
- 低粒度水平(Bean 和 Bean 方法调用数目小)- 开发一种较单一的应用程序,从而创建一个不太可能提高共享和可复用率但通常执行速度更快的应用程序。
- 高粒度水平(Bean 和 Bean 方法调用数目大)- 把一个应用程序分为许多定义较窄的较小 Enterprise Bean。这可创建一个在您的站点的不同应用程序之中提高共享和复用率的应用程序。
- 把一个分布式应用程序分成中等数量到很大数量的单独 Bean 会降低性能,并会产生更多开销。Enterprise Bean 不只是 Java 对象;它们是较高水平的实体,这些实体具有远程调用接口语义、安全语义、事务语义以及属性。此复杂性会产生额外开销。
访问 Sun ONE 应用服务器功能
您可以开发严格遵守 Enterprise JavaBeans Specification 2.0 的实体 Bean,您也可以开发利用该规范以及附加的 Sun ONE 应用服务器增值功能的实体 Bean。
Sun ONE 应用服务器具有许多只能在 Sun ONE 应用服务器中使用的多种功能。Sun ONE 应用服务器 API 使应用程序能够有计划地利用特定 Sun ONE 应用服务器环境功能。
注 请仅在您计划只在 Sun ONE 应用服务器环境中使用这些 Bean 的情况下才使用这些 API。
关于 EJB 组装和部署
在 Sun ONE 应用服务器中组装模块和应用程序的过程符合所有 J2EE 定义的通常规范,但是,您可以把 Sun ONE 应用服务器特有的部署描述符包含在内,这些部署描述符可增强 J2EE 规范之外的 Sun ONE 应用服务器的功能。
J2EE 模块是一个或多个 J2EE 组件(包含两个此类型部署描述符)的集合。一个描述符是 J2EE 标准文件,另一个为 Sun ONE 应用服务器所特有的文件。对于 Enterprise Bean,以下部署描述符文件适用:
- ejb-jar.xml—J2EE 标准文件
- sun-ejb-jar.xml—Sun ONE 应用服务器所特有的文件
- sun-cmp-mappings.xml—Sun ONE 应用服务器所有特有的文件,用于容器管理持久性映射
有关 EJB DTD 和 XML 文件的信息包含在“组装和部署 Enterprise Bean”。
所有与 EJB 相关的元素的字母顺序列表包含在“元素列表”。
关于组装和部署的一般信息包含在 Sun ONE 应用服务器开发指南中。
部署过程包含在 Sun ONE 应用服务器管理员指南以及管理界面联机帮助中。
| | 索引 |