EJB的三个对象
1、Remote(或Local)接口
2、Home(或LocalHome)接口
3、企业Bean
说明:
1、Remote接口为远程接口的定义,定义一个远程接口的时候,该接口必须继承javax.ejb.EJBObject(这里,javax.ejb.EJBObject继承自java.rmi.Remote接口类)。自定义的远程接口中,可以定义业务方法列表,而这些方法应该抛出RemoteException异常,而且,在要实现的企业Bean中有相应的实现,这些企业Bean可以是会话Bean、实体Bean、消息驱动Bean。
2、Home接口为组件接口,即通过该接口中定义的查找、创建、删除企业Bean类实例的方法列表,可以创建一个EJBObject的对象(其实是获取到一个远程接口),从而获取到一个企业Bean的实例的引用,然后通过远程接口独傲用一个企业Bean中定义的方法,实现方法定义的功能。 Home接口是通过继承javax.ejb.EJBHome来定义的(这里,javax.ejb.EJBHome继承自java.rmi.Remote接口类)。
3、Home接口中方法列表的定义。这些定义的方法必须抛出RemoteException,并且,根据方法实现功能的不同,还需要抛出方法的动作异常,例如,如果是创建方法,还应该抛出CreateException,如果是移除方法,还应该抛出RemoveException。
4、EJB是服务器端组件。企业Bean才是最核心的。企业Bean可以是会话Bean、实体Bean、消息驱动Bean。
5、客服端调用EJB对象的基本步骤是,首先设置JNDI服务工厂以及JNDI服务地址系统属性,然后查找到Home接口,接着从Home接口调用Create方法创建Remote接口,最后通过Remote接口调用其业务方法。
6、如果EJB组件提供分布式计算服务,需要远程调用,执行业务,这时一个EJB组件具有的EJB对象为:Remote接口、Home接口,企业Bean;
如果EJB组件提供本地服务,需要提供本地接口和本地组件接口,这时一个EJB组件具有的EJB对象为:Local接口、LocalHome接口,企业Bean。
■ EJB服务器和EJB容器
EJB服务器是管理EJB容器的高端进程或应用程序,并提供对系统服务的访问。EJB服务器也可以提供厂商自己的特性,如优化的数据库访问接口,
对其他服务的访问。一个EJB服务器必须提供对可访问JNDI的名字服务和事务服务支持。
EJB容器是一个管理一个或多个EJB类/实例的抽象。它通过规范中定义的接口使EJB类访问所需的服务。容器厂商也可以在容器或服务器中提供额外服务的接口。容器开发商提供运行在EJB服务器中一套完成这些功能的工具和接口。 这些服务包括:
·与二级存储中交换(对会话bean)
·持久性管理(对实体bean)
·实现创建和查找服务的home object的可用性
·在可通过JNDI访问的名字空间home object的可视性
·正确的创建、初始化和删除bean
·保证商业方法正确地运行在事务上下文中
·实现某一基本的安全服务
·从home object和EJBObject上的RMI上产生stub和skeleton
说明:
EJB服务器供应商一般将EJB容器集成到EJB服务器中。
■ EJB规范规定EJB中禁止的操作
1、不能操作线程和线程API(线程API指非线程对象的方法如notify,wait等)
2、不能操作awt
3、不能实现服务器功能
4、不能对静态属生存取
5、不能使用IO操作直接存取文件系统
6、不能加载本地库
7、不能将this作为变量和返回
8、不能循环调用
■ EJB的角色
EJB有六个角色,分别为:
EJB组件开发者(Enterprise Bean Provider)
应用组合者(Application Assembler)
部署者(Deployer)
EJB 服务器提供者(EJB Server Provider)
EJB 容器提供者(EJB Container Provider)
系统管理员(System Administrator)
说明:
一个完整的基于EJB的分布式计算结构由上述六个角色组成,这六个角色可以由不同的开发商提供,每个角色所作的工作必须遵循Sun公司提供的EJB规范,以保证彼此之间的兼容性。
■ EJB会话Bean
会话Bean(SessionBean)在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。
会话Bean包括两种:无状态会话Bean(Stateless Session Bean)和有状态会话Bean(Stateful Session Bean)。
说明:
1、无状态会话Bean(Stateless Session Bean)的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建一个新的Bean的实例供客户机调用,而是随便找一个现有的实例提供给客户机。无状态会话Bean(Stateless Session Bean)的优势却在于他可以维持使用者的状态。
2、当客户机第一次调用一个有状态会话Bean(Stateful Session Bean)时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用有状态会话Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例。有状态会话Bean(Stateful Session Bean)会消耗 J2EE Server 较多的内存。
分享到:
相关推荐
具体来说,对于每个EJB,容器至少会创建以下三个对象: - **EJB对象**:这是实际的业务逻辑实现,比如这里的`HelloBean`。 - **服务器端的代理对象**:这是一个在服务器端代表EJB对象的代理,例如`...
EJB系统由三个主要组件构成:会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean(Message-Driven Beans)。这些组件可以看作是服务提供者,为客户端应用程序提供服务。 1. **会话bean**: - **...
这个PPT教程详细介绍了EJB3的各种核心概念和技术,旨在帮助学习者掌握EJB3的核心特性并能实际应用到项目开发中。** **一、SessionBean** SessionBean是EJB中的一个关键组件,它代表了业务逻辑,通常处理单个客户端...
EJB主要包含三种组件: - **Session Beans**:为单个客户端提供服务,代表业务逻辑。有无状态会话Bean和有状态会话Bean两种,前者不保存客户端状态,后者则可以在多个方法调用间保持状态。 - **Entity Beans**:...
#### 三、EJB的生命周期与事务管理 EJB的生命周期管理主要由容器负责,包括实例化、激活、去活、销毁等阶段。针对不同的Bean类型,生命周期管理的细节也有所不同。 - **Session Bean** 的生命周期相对简单,当...
#### 三、EJB-jar文件的结构与配置 EJB-jar文件是包含EJB组件的归档文件,其结构通常包括: - **业务接口的class文件**:必须包含。 - **bean类的class文件**:必须包含。 - **META-INF/标准的部署描述文件(ejb-...
- EJB是Java平台为企业级应用设计的组件模型,分为三种类型:Session Beans(会话Bean)、Message-driven Beans(消息驱动Bean)和Entity Beans(实体Bean)。 - Session Beans负责业务逻辑处理,提供临时或持续性...
EJB3.0允许使用普通的Java对象作为EJB实体,这意味着开发者不再需要实现特定的接口或者继承特定的类,从而降低了开发门槛。 ##### 4.3 生命周期管理 EJB3.0改进了EJB的生命周期管理机制,提供了一种更简单的方式来...
EJB分为三种类型:会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean(Message-Driven Beans)。在这个例子中,我们将使用会话bean,它是用来模拟业务逻辑的对象。 开始学习EJB前,了解其主要...
1. **EJB组件**:EJB主要包括三种类型:Session Beans(会话bean)用于处理客户端请求,Message-driven Beans(消息驱动bean)用于处理JMS消息,以及Entity Beans(实体bean)代表数据库中的持久化对象。 2. **接口...
为了对比这三种组件模型,我们可以从以下几个方面进行分析和比较: 1. 分布式计算模型: - CORBA采用的是基于ORB的分布式计算模型,它允许对象在远程和本地环境之间以透明的方式进行通信。 - COM最初设计为在单机...
EJB技术框架主要包括以下几个核心概念: 1. **服务器(Server)**:EJB服务器负责管理和协调EJB容器,同时提供对操作系统服务及Java相关服务的访问,如通过JNDI(Java Naming and Directory Interface)访问命名空间...
根据项目目标,我们首先定义了三个主要参与者(Actor): 1. **用户(学生)**:浏览课程及注册课程。 2. **讲师**:浏览课程、开设课程、删除课程。 3. **系统管理员**:管理注册的学生、安排教室、确认课程。 接...
本项目是一个基于EJB技术的Web网站,它包含完整的源码,为学习和实践EJB提供了一个实际案例。以下将从几个关键知识点来深入解析这个EJB项目: 1. **EJB组件类型**: - **会话bean(Session Beans)**:这些bean...
EJB 由三个组件组成: * session bean:负责处理业务逻辑,提供服务给客户端。 * entity bean:负责存储和管理业务数据。 * message-driven bean:负责处理消息,实现异步通信。 四、EJB 的生命周期 EJB 的生命...
EJB通常有三个接口:远程接口(Remote)、本地接口(Local)和业务接口(Business)。远程接口允许远程客户端访问,本地接口仅限于同一JVM内的访问,业务接口定义了Bean的业务方法。 6. **事务管理**: EJB支持...
1. **EJB组件类型**:EJB主要分为三种组件类型:会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-Driven Beans)。会话Bean通常代表一次会话或用户交互,实体Bean则对应数据库中的持久...
EJB体系结构包括客户端、服务器端和组件三个部分: 1. 客户端:通过EJB接口与服务器端通信,调用EJB方法执行业务逻辑。 2. 服务器端:提供运行环境,包括EJB容器,负责部署、管理、调度和生命周期控制。 3. 组件:...