1、1第三章第三章 J2EEJ2EE技术技术内容:内容:3.1 J2EE3.1 J2EE概述概述3.2 EJB3.2 EJB模型模型3.3 EJB3.3 EJB角色角色3.4 3.4 会话会话BeanBean3.5 3.5 实体实体BeanBean3.6 3.6 消息驱动消息驱动BeanBean2p 参考教材参考教材n精通精通EJBEJB 美美Ed Roman Ed Roman 电子工业出版社电子工业出版社n中国中国ITIT实验室实验室 http:/ J2ME Java 2 Micro EditionJava 2 Micro Edition Java 2 Java 2 平台平台微型版微型版: :用
2、于用于嵌入式系统嵌入式系统开发,例如掌上开发,例如掌上电脑,手机,仪表等。电脑,手机,仪表等。pJ2SE J2SE Java 2 Standard EditionJava 2 Standard Edition Java 2 Java 2 平台平台标准版标准版: :用于创建典型的用于创建典型的桌面与工作站桌面与工作站应应用的用的JavaJava平台,是实现可伸缩性、可移植性、分布式平台,是实现可伸缩性、可移植性、分布式异构互操作应用软件开发的标准平台。异构互操作应用软件开发的标准平台。 pJ2EEJ2EE Java 2 Enterprise EditionJava 2 Enterprise Ed
3、itionJava 2 Java 2 平台平台企业版企业版: :用于创建可扩缩的分布式的用于创建可扩缩的分布式的企业企业应用平台应用平台,例如电子商务网站和,例如电子商务网站和ERPERP系统系统 。3.1 J2EE3.1 J2EE概述概述4J2EEJ2EE可以提供什么可以提供什么o 分布式分布式、可移植可移植构件的框架构件的框架o 简化简化服务器中间层构件的设计服务器中间层构件的设计o 为构件和应用服务器提供为构件和应用服务器提供标准标准APIAPI5J2EEJ2EE可以为开发者和用户带来可以为开发者和用户带来o 更短更短的开发时间的开发时间n 可重用组件可重用组件n JSPJSPn EJB
4、EJBo 自由自由的选择的选择n 基于开发的标准基于开发的标准o 简化简化的连接的连接n XMLXML、JDBCJDBC、RMI-IIOPRMI-IIOP、Web ServiceWeb Service6J2EEJ2EE四层模型四层模型浏览器浏览器Java Java BeanBeanAppletAppletWebWeb服务器服务器JSPJSPServeletServeletJSPJSPEJBEJB容器容器EJBEJB桌面桌面JavaJava应用应用ServeletServeletEJBEJB数据库数据库数据库数据库客户端客户端显示逻辑显示逻辑业务逻辑业务逻辑企业信息系统企业信息系统EJBEJBE
5、JBEJBHTTPJDBCJDBCJDBCRMI/IIOP7J2EEJ2EE相关技术相关技术o 1 1、EJBEJB: 定义定义服务端组件服务端组件的的编写规则编写规则、组件之间、组件之间的的交互规则交互规则和应用服务器对组件的和应用服务器对组件的管理规则管理规则。o 2 2、RMIRMI: JavaJava远程方法调用远程方法调用,提供跨进程的组件,提供跨进程的组件通信和相关的通信服务。通信和相关的通信服务。o 3 3、RMI-IIOPRMI-IIOP: 扩展了扩展了RMIRMI,提供与,提供与CORBACORBA的集成,的集成,用于用于J2EEJ2EE的的正式正式APIAPI。o 4 4、
6、JNDIJNDI: JavaJava名称和目录接口名称和目录接口,用于网络中定位,用于网络中定位组件和其他资源。组件和其他资源。o 5 5、JDBCJDBC: 提供提供关系数据库关系数据库的连接和相应的数据库的连接和相应的数据库操作。操作。o 6 6、JTAJTA和和JTSJTS:使组件支持:使组件支持事务处理事务处理的的规范。的的规范。8J2EEJ2EE相关技术(续)相关技术(续)o 7 7、JMSJMS:用于分布式对象的:用于分布式对象的异步通信异步通信。o 8 8、Java Servlets Java Servlets 和和JSPJSP:适用于:适用于请求请求/ /应答模应答模式式分布式
7、计算的网络组件。分布式计算的网络组件。o 9 9、Java IDLJava IDL:用于基于:用于基于JavaJava的的CORBACORBA实现,使实现,使JavaJava与其他与其他编程语言编程语言集成。集成。o 1010、ConnectorsConnectors:使:使J2EEJ2EE可以运行高端事务处可以运行高端事务处理的主机理的主机系统集成系统集成。o 1111、JCA/JCE/JSSE/JAASJCA/JCE/JSSE/JAAS:安全服务体系安全服务体系,专门,专门处理身份验证及权限管控处理身份验证及权限管控 的标准服务。的标准服务。93.2 EJBo EJBEJB的定义是:的定义
8、是:EJBEJB是用于开发和部署多层结构是用于开发和部署多层结构的、分布式的、面向对象的的、分布式的、面向对象的JavaJava应用系统的跨应用系统的跨平台的平台的构件体系结构构件体系结构。o EJBEJB规范规范说明定义了说明定义了JavaJava的服务器端的服务器端构件模型构件模型。o EJBEJB是在容器里执行的,是在容器里执行的,SunSun公司也发布了公司也发布了EJBEJB容容器的规范器的规范,EJBEJB可以在任何符合规范的容器中运可以在任何符合规范的容器中运行,容器其实就是给行,容器其实就是给EJBEJB提供服务提供服务的。的。10o EJBEJB的的核心思想核心思想是将是将商
9、业逻辑商业逻辑与底层的与底层的系统逻辑系统逻辑分开,由分开,由EJBEJB容器容器实现目录服务、事务处理、持实现目录服务、事务处理、持久性、安全性等底层系统逻辑,并且可创建具久性、安全性等底层系统逻辑,并且可创建具有动态扩展性的服务器应用。有动态扩展性的服务器应用。o EJBEJB技术基于技术基于Java RMI-OPJava RMI-OP和和JNDIJNDI技术,包括技术,包括规范规范和和JavaJava接口接口两部分。两部分。11EJB模型模型客户客户EJB HomeEJB HomeEJBEJB构件构件事务服务事务服务数据库或数据库或遗留系统遗留系统远端调用接口远端调用接口业务逻辑方法业务
10、逻辑方法服务器服务器容器容器EJBEJB对象对象命名服务命名服务安全服务安全服务12EJB的构成的构成o EJBEJB类类o EJBEJB容器容器o EJBEJB对象对象o HomeHome对象与对象与HomeHome接口接口o 本地接口本地接口o 部署描述部署描述o 供应商特有文件供应商特有文件o Ejb-jarEjb-jar文件文件13EJB类类oEJBEJB类是一个类是一个JavaJava类,用户在类,用户在EJBEJB类中根据需要类中根据需要编写完成各种编写完成各种业务功能业务功能的具体实现代码。的具体实现代码。oEJBEJB规范规范定义一些定义一些标准接口标准接口以供以供BeanBe
11、an类实现,这类实现,这些接口强制规定公开编写某些些接口强制规定公开编写某些BeanBean类必须提供的类必须提供的方法。方法。容器容器调用这些强制实现的方法来管理调用这些强制实现的方法来管理BeanBean。o所有的所有的BeanBean类都必须实现的类都必须实现的最基本的接口最基本的接口是:是:javax.ejb.EnterpriseBeanjavax.ejb.EnterpriseBean接口接口。这个接口起到。这个接口起到标识接口的作用。标识接口的作用。14EJB类(续)类(续)o 对于对于会话会话BeanBean,典型的,典型的EJBEJB类包含与类包含与商务过程商务过程相相关的逻辑。
12、必须实现关的逻辑。必须实现javax.ejb.SessionBeanjavax.ejb.SessionBean接口。接口。o 对于对于实体实体BeanBean,典型的,典型的EJBEJB类包含与类包含与商务数据商务数据相相关的逻辑。必须实现关的逻辑。必须实现javax.ejb.EntityBeanjavax.ejb.EntityBean接接口。口。o 对于对于消息消息BeanBean,典型的,典型的EJBEJB类包含类包含面向消息面向消息的逻的逻辑。必须实现辑。必须实现javax.ejb.MessageDrivenBeanjavax.ejb.MessageDrivenBean接口。接口。15E
13、JB容器容器o EJBEJB容器是容器是EJBEJB组件的组件的运行环境运行环境。EJBEJB容器装载容器装载EJBEJB,并且使得客户端程序能进行远程调用。,并且使得客户端程序能进行远程调用。o EJBEJB容器负责将客户端程序连接到容器负责将客户端程序连接到BeansBeans,执行,执行事务协调事务协调,提供数据存储,管理,提供数据存储,管理BeanBean的的生命周生命周期期等。等。o 从本质上讲,从本质上讲,EJBEJB容器是客户端程序和容器是客户端程序和BeanBean之间之间看不见的看不见的中间人中间人。16EJB容器(续)容器(续)o 一致性一致性o 安全性安全性o 可获得性可
14、获得性o 生命周期管理生命周期管理o 事务性事务性o 分布性分布性o 可伸缩性可伸缩性o 持久性持久性17EJB对象对象o EJBEJB对象对象请求拦截器请求拦截器o EJBEJB对象是一种对象是一种代理对象代理对象,具有网络功能,执行,具有网络功能,执行事务处理,提供安全措施等。在事务处理,提供安全措施等。在BeanBean类实例响类实例响应方法调用之前,应方法调用之前,EJBEJB对象知道如何执行对象知道如何执行EJBEJB容容器所要求的器所要求的中间逻辑中间逻辑。o EJBEJB对象对象复制并公开复制并公开BeanBean本身具有的所有本身具有的所有公开商公开商务方法务方法,把客户端所有
15、的请求传递给,把客户端所有的请求传递给BeanBean。o EJBEJB对象是对象是EJBEJB容器本身的一部分,所有的容器本身的一部分,所有的EJBEJB对对象都包含与特定象都包含与特定EJBEJB容器容器有关的代码有关的代码。EJBEJB容器容器自动生成自动生成EJBEJB对象的类文件。对象的类文件。18EJB对象(续)对象(续)19Home对象对象o 客户端如何获得对客户端如何获得对EJBEJB对象的引用对象的引用?o HomeHome对象是对象是EJBEJB对象的生成库对象的生成库,负责对,负责对EJBEJB对象对象的实例化和回收。的实例化和回收。o 主要职责:主要职责:n 生成生成E
16、JBEJB对象对象n 查找查找现有的现有的EJBEJB对象对象n 删除删除EJBEJB对象对象o 对于每个对于每个EJBEJB容器,容器,HomeHome对象都是对象都是专用的专用的,特定,特定的,是的,是EJBEJB容器的一部分,由容器的一部分,由EJBEJB容器提供商提容器提供商提供的软件工具供的软件工具自动生成。自动生成。20Home接口接口o HomeHome对象如何知道怎样初始化对象如何知道怎样初始化EJBEJB对象对象?o HomeHome接口定义一组方法来接口定义一组方法来创建新的创建新的EJBEJB对象对象,查,查找、定位和清除已有的找、定位和清除已有的EJBEJB对象。对象。
17、o HomeHome接口仅仅定义接口仅仅定义生成、回收、查找生成、回收、查找EJBEJB对象方对象方法,具体的由法,具体的由HomeHome对象来实现对象来实现。o HomeHome接口必须扩展接口必须扩展javax.ejb.EJBHomejavax.ejb.EJBHome 接口,接口,而该接口又从而该接口又从java.rmi.Remotejava.rmi.Remote扩展而来,因此扩展而来,因此HomeHome对象是完全具有网络功能。对象是完全具有网络功能。o EJBEJB构件部署时构件部署时容器容器会自动生成相应会自动生成相应HomeHome对象。对象。21Home接口和接口和Home对象
18、对象22本地接口本地接口o 本地接口是本地接口是EJB2.0EJB2.0的新功能,它实现通过的新功能,它实现通过本地对象本地对象以以一种快速、高效的方式调用一种快速、高效的方式调用EJBEJB。o 本地对象本地对象实现本地接口,过程如下:实现本地接口,过程如下:n客户调用客户调用本地对象本地对象;n本地对象完成所需本地对象完成所需中间件服务中间件服务;n本地对象调用本地对象调用EJBEJB实例实例完成相应服务后,将控制权返回完成相应服务后,将控制权返回给本地对象,本地对象再将控制权返回给客户。给本地对象,本地对象再将控制权返回给客户。o 缺陷:缺陷:n只有在只有在同一进程同一进程中调用中调用B
19、eanBean时,才有效。时,才有效。n通过通过引用引用而不是通过值传递参数。而不是通过值传递参数。23部署描述部署描述o 部署描述声明一个指定的部署描述声明一个指定的BeanBean应该应该如何使用中如何使用中间件间件,而不是编写代码使用中间件。,而不是编写代码使用中间件。o 部署描述可用来描述下列要求:部署描述可用来描述下列要求:n BeanBean的管理和生命周期要求的管理和生命周期要求n 持久性要求持久性要求n 事务处理要求事务处理要求n 安全性要求安全性要求o 部署描述是一个部署描述是一个XMLXML文件文件。o 部署描述实现了部署描述实现了不改变不改变EJBEJB组件源代码组件源代
20、码就调整组就调整组件使之适用于特定的部署应用环境。件使之适用于特定的部署应用环境。24供应商特有文件供应商特有文件o 每个每个EJBEJB服务器供应商都有一些自己独特的服务器供应商都有一些自己独特的增值增值特性特性,EJBEJB规范没有涉及这些特性,例如,怎样规范没有涉及这些特性,例如,怎样配制装载平衡、群集、监控等。配制装载平衡、群集、监控等。o EJBEJB服务器供应商服务器供应商一般要求包括一些供应商特有一般要求包括一些供应商特有文件,例如,文件,例如,XMLXML文件、文本文件或者二进制文文件、文本文件或者二进制文件。件。o 供应商特有文件供应商特有文件不能不能在不同应用服务器之间在不
21、同应用服务器之间移移植植。25Ejb-jar文件文件o Ejb-jarEjb-jar文件是一个文件是一个.zip.zip压缩文件压缩文件,包含,包含BeanBean类、类、HomeHome接口、接口、RemoteRemote接口及部署描述文件。接口及部署描述文件。o Ejb-jarEjb-jar文件一旦生成,即代表文件一旦生成,即代表EJBEJB设计完成,设计完成,可成为应用服务器的一个可成为应用服务器的一个可部署应用单元可部署应用单元了。了。o 部署部署EJBEJB时,时,EJBEJB容器提供商提供容器提供商提供解压缩工具解压缩工具读读取和提取取和提取Ejb-jarEjb-jar文件内的信息
22、,部署员从而执文件内的信息,部署员从而执行其特定的任务。行其特定的任务。o Ejb-jarEjb-jar文件是所有文件是所有EJBEJB工具都必须支持的工具都必须支持的标准标准特性特性。26Ejb-jar文件(续)文件(续)27EJBEJB服务器服务器/EJB/EJB容器容器客户客户名称服务名称服务HOMEHOME对象对象EJBEJB对象对象EJBEJB实例实例J2EEJ2EE服务服务JNDI1 1、客户检、客户检索索HomeHome对对象引用象引用2 2、返回、返回HomeHome对象对象引用引用5 5、返回、返回EJBEJB对对象引用象引用3 3、创建或查找、创建或查找EJBEJB对象对象
23、6 6、调用业务、调用业务方法方法9 9、将方法返、将方法返回值传给客户回值传给客户HomeHome接口接口RemoteRemote接口接口4 4、创建或查、创建或查找找EJBEJB对象对象8 8、返回方法、返回方法7 7、取得、取得BeanBean实例实例并将方法传给它并将方法传给它容器控制容器控制调用中间调用中间件件APIAPI客户与客户与EJB的交互过程的交互过程28EJBEJB角色及生命周期图角色及生命周期图企业企业beanbean提供者提供者企业企业beanbean应用程序组装者应用程序组装者应用程序应用程序配置者配置者容器容器EJBEJB容器提供者容器提供者EJBEJB服务提供者服
24、务提供者系统管理员系统管理员服务器服务器管理工具管理工具开开发发配配置置与与执执行行3.3 3.3 EJB角色角色29企业企业beanbean提供者提供者o 是金融或电信等应用领域的专家。是金融或电信等应用领域的专家。o 提供了提供了业务方法业务方法,定义了,定义了beansbeans的远端调用接口的远端调用接口和和HomeHome接口,还定义了接口,还定义了beansbeans的配置描述符。的配置描述符。o 不需要关心分布处理、事务处理、安全性能等不需要关心分布处理、事务处理、安全性能等方面的问题。方面的问题。30应用程序组装者应用程序组装者o 负责将定制的负责将定制的企业企业beansbe
25、ans和和其他的构件其他的构件组装成一组装成一个完整的个完整的应用系统应用系统。o 接受企业接受企业beansbeans提供者输出的提供者输出的EJB-jarEJB-jar文件文件作为作为自己的自己的输入输入,在配置描述符中,在配置描述符中插入插入应用程序组应用程序组装指令。装指令。o 必须掌握所有的必须掌握所有的EJBEJB的远端调用接口和的远端调用接口和HomeHome接口,接口,而而不关心不关心这些接口是怎么实现的。这些接口是怎么实现的。31配置者配置者o 配置者负责将配置者负责将ejb-jarejb-jar文件文件配置到用户的配置到用户的系统环境系统环境中。中。o 系统环境包含某种系统
26、环境包含某种EJB ServerEJB Server和和EJB EJB 容器容器。配置者必。配置者必须保证所有在配置文件中声明的资源须保证所有在配置文件中声明的资源可用可用。o 配置过程配置过程n1.1.利用利用EJBEJB容器提供的工具生成一些容器提供的工具生成一些类和接口类和接口,使,使EJBEJB容容器能够利用这些类和接口在运行状态器能够利用这些类和接口在运行状态管理管理EJBEJB。 n2. 2. 安装安装EJBEJB组件组件和其他在上一步和其他在上一步生成的类生成的类到到EJBEJB容器中。容器中。o 配置者是某个配置者是某个EJBEJB运行环境的专家运行环境的专家。o 某些情况下,
27、配置者在配置时还需要了解某些情况下,配置者在配置时还需要了解EJBEJB包含的包含的业业务方法务方法,以便在配置完成后,写一些简单的程序,以便在配置完成后,写一些简单的程序测试测试 程序程序。32EJBEJB容器提供者容器提供者o 提供提供EJBEJB容器容器,为已配置成功的,为已配置成功的EJBEJB组件提供组件提供运行环境运行环境 。EJBEJB容器负责为容器负责为EJBEJB应用提供应用提供服务服务。o 容器提供者必须是容器提供者必须是系统级系统级的编程专家,还要具备一些的编程专家,还要具备一些应应用领域用领域的经验。的经验。o 工作主要集中在开发一个工作主要集中在开发一个可伸缩可伸缩的
28、、具有的、具有交易管理交易管理功能功能的的集成在集成在EJB EJB 服务器中的容器服务器中的容器。o 容器提供者为容器提供者为EJBEJB组件开发组件开发者提供了一组者提供了一组标准的标准的、易用易用的的APIAPI访问访问EJB EJB 容器。容器。o 容器提供者负责提供系统容器提供者负责提供系统监测工具监测工具用来实时监测用来实时监测EJBEJB容容器和运行在容器中的器和运行在容器中的EJBEJB组件组件状态。状态。 33EJB EJB 服务器提供者服务器提供者 o EJB EJB 服务器提供者是服务器提供者是系统领域系统领域的专家,精通分的专家,精通分布式布式交易管理交易管理,分布式,
29、分布式对象管理对象管理及其它及其它系统级系统级的服务的服务。o EJB EJB 服务器提供者一般由服务器提供者一般由操作系统操作系统开发商、开发商、中中间件间件开发商或开发商或数据库数据库开发商提供。开发商提供。o 在目前的在目前的EJBEJB规范中,假定规范中,假定EJB EJB 服务器提供者服务器提供者和和EJB EJB 容器提供者容器提供者来自同一个开发商,所以,来自同一个开发商,所以,没没有定义有定义EJB EJB 服务器提供者和服务器提供者和EJBEJB容器提供者之间容器提供者之间的的接口标准接口标准。34系统管理员系统管理员o 系统管理员负责为系统管理员负责为EJBEJB服务器和容
30、器服务器和容器提供一个企提供一个企业级的业级的计算和网络环境计算和网络环境。o 系统管理员负责利用系统管理员负责利用EJB EJB 服务器和容器提供的服务器和容器提供的监测管理工具监测管理工具监测监测EJBEJB组件的组件的运行情况运行情况。353.4 会话会话Beano 会话会话beanbean(维护会话):模拟(维护会话):模拟商务处理过程商务处理过程对对象,表示客户所要完成的工作,如电子商店的象,表示客户所要完成的工作,如电子商店的购物车购物车。36o 会话会话Bean37o 会话会话Bean38会话会话Beano 会话会话BeanBean商务处理过程商务处理过程n 会话会话BeansB
31、eans分分无状态无状态和和有状态有状态两种。两种。n 无状态无状态的会话的会话BeansBeans通常模拟通常模拟商业逻辑商业逻辑,比如汇,比如汇率转换、计算商品价格等。率转换、计算商品价格等。n 有状态有状态的会话的会话BeansBeans通常模拟通常模拟商业过程商业过程,它会临,它会临时保存客户信息。一个会话时保存客户信息。一个会话BeansBeans的典型例子是的典型例子是网上的购物车。网上的购物车。n 两种会话两种会话BeansBeans都都不保存状态信息或数据不保存状态信息或数据,当客,当客户断开连接或服务器关闭时,会话户断开连接或服务器关闭时,会话BeansBeans随之消随之消
32、失。失。393.4.1 开发无状态会话开发无状态会话Beano 1 1、什么是无状态会话、什么是无状态会话BeanBeanStatelessStatelessn 无状态会话无状态会话BeanBean每次调用只对客户提供每次调用只对客户提供业务逻辑业务逻辑,但但不保存不保存客户端的任何数据状态。客户端的任何数据状态。n 无状态会话无状态会话BeanBean的的状态状态,被保持在,被保持在客户端客户端,容器不,容器不负责管理。负责管理。n 无状态会话无状态会话Bean Bean 在在EJB EJB 中是最简单的一种中是最简单的一种BeanBean,如,如果果数据数据实际上是实际上是瞬时映像瞬时映像
33、,则建议使用无状态会话,则建议使用无状态会话Bean Bean 。n 如果数据状态如果数据状态非常敏感非常敏感,则不要使用无状态会话,则不要使用无状态会话BeanBean,这些情况可以使用,这些情况可以使用有状态会话有状态会话BeanBean,将用户,将用户状态保存到服务器中。状态保存到服务器中。40o 2 2、无状态会话、无状态会话Bean Bean 生命周期生命周期n 无状态会话无状态会话Bean Bean 寿命周期由寿命周期由容器控制容器控制。n 当部署一个当部署一个EJB EJB 时,容器会为这个时,容器会为这个Bean Bean 分配几分配几个实例到个实例到组件池组件池中;中;n 当
34、客户当客户请求请求一个一个Bean Bean 时,时,J2EE J2EE 服务器将一个服务器将一个预先被实例化的预先被实例化的Bean Bean 分配出去;分配出去;n 空闲的空闲的BeanBeanu不在方法中或事务中;不在方法中或事务中;u客户长时间不用;客户长时间不用;n 如果全部的实例都已用完则会如果全部的实例都已用完则会自动生成自动生成一个新一个新的实例放到池中,并分配给请求者。的实例放到池中,并分配给请求者。41无状态会话无状态会话Bean 生命周期生命周期o 无状态会话无状态会话Bean Bean 有两种状态:有两种状态:存在存在或或不存在不存在。42无状态会话无状态会话Bean
35、创建步骤创建步骤o 1 1、当客户端不存在一个无状态会话、当客户端不存在一个无状态会话Bean Bean 时,通过时,通过远程远程HomeHome接口的接口的create( )create( ) 方法创建一个方法创建一个BeanBean;o 2 2、newInstance( )newInstance( ) 负责将负责将Bean Bean 实例化实例化;o 3 3、EJB EJB 容器调用容器调用Bean Bean 类的类的setSessionContext()setSessionContext() 方法把运行环境对象方法把运行环境对象SessionContext SessionContext
36、传递给传递给BeanBean;o 4 4、随后调用、随后调用Bean Bean 的的ejbCreate ( )ejbCreate ( )方法进行必要方法进行必要的的初始化初始化和和资源分配资源分配。434.4.24.4.2开发有状态会话开发有状态会话BeanBeano 有状态会话有状态会话BeanBeanStatefulStatefuln 有状态会话有状态会话Bean Bean 可在客户访问过程中可在客户访问过程中保存数据保存数据。n 两者都实现了两者都实现了javax.ejb.SessionBean javax.ejb.SessionBean 接口接口,EJB EJB 容器区通过部署文件容器
37、区通过部署文件ejb-jar.xmlejb-jar.xml 来判断来判断是否为一个是否为一个SessionBean SessionBean 提供保存状态的服务。提供保存状态的服务。n 有状态会话有状态会话BeanBean在客户引用期间维护在客户引用期间维护Bean Bean 中的中的所有所有实例数据实例数据的状态值,这些数据在引用期间的状态值,这些数据在引用期间可以被可以被其他方法所引用其他方法所引用,其他客户不会共享其他客户不会共享同同一个一个Session Bean Session Bean 的实例。的实例。n Bean Bean 是是可以被序列化可以被序列化,其状态可被保存到临时,其状态可被保存到临时存储体,文件系统或数据库中。存储体,文件系统或数据库中。44o 钝化与活化钝化与活化n 会话会话Bean支持支持Bean的钝化与活化过程。的钝化与活化过程。n 钝化钝化:把:把Bean的实例的实例从主存移到二级存储从主存移到二级存储中的中的交互机制。交互机制。n 活化活化:把:把Bean的实例从的实例从二级存储中恢复到主存二级存储中恢复到主存中的过程。中的过程。n 由由容器容器维护维护Bean的的时间期限时间期限。45有状态会话有状态会话Bean的生命周期的生命周期