如何调用EJB3.0无状态会话Bean服务?
1. 在正式的生产环境下,大部分调用EJB服务的客户端可能是单独部署在Tomcat下的web应用或独立的J2SE程序。
2. 根据应用的具体需要,将调用EJB服务所依赖的jar包拷贝到tomcat下的lib文件夹中或导入客户端工程的build path libraries中,不同的EJB应用服务器安装目录下存放着各自的客户端程序调用需要的jar包。
3. 假设EJB3.0程序已经部署到相关的应用服务器(这里以TongWeb为例)上,并且应用服务器是启动的,然后编写一个”轻量级”的客户端来调用EJB服务即可,这里的”轻量级”是指客户端程序只需要满足以下条件即可调用远程应用服务器上的EJB无状态会话Bean服务。
a) 根据不同的应用服务器,在客户端工程中导入(add relative jar packages to the build path)调用EJB服务程序所需要的客户端相关jar包。
b) 客户端访问EJB程序时必须明确设置InitialContext上下文环境属性,具体代码如下:
Properties prop = new Properties(); prop.setProperty("java.naming.factory.initial","com.tongweb.naming.SerialInitContextFactory"); prop.setProperty("java.naming.provider.url", "127.0.0.1:5201"); InitialContext ctx; try { ctx = new InitialContext(prop); |
说明 : 这里的”java.naming.factory.initial”对应的属性设置是Java标准命名服务的驱动类,而”java.naming.provider.url”设置的则是提供命名服务(这里为EJB3.0服务)的应用服务器的主机地址及对应的服务端口,另外这个地方已经利用xShell第三方中间件打通了本地端口和远程服务端口的”通道”,可以通过本地IP及端口映射到远程服务器上的主机地址和服务端口。
注意:在J2SE程序中(如一个简单的main方法中)调用EJB3.0服务同样需要将上述的依赖jar文件及EJB接口放置在应用的类路径下。EJB接口指的是EJB服务中能提供的远程服务接口及一些DTO类所打成的jar包。
4. 当一个无状态会话Bean发布到EJB容器时,容器就会为她创建一个对象存根(stub),并把她注册进容器的JNDI目录,客户端代码使用她的JNDI名从容器获得她的stub。通过这个stub,客户端可以调用她的业务方法进行业务处理。
5. 有的时候还需要配置相关的Hosts配置文件中的信息,将IP和域名的对应关系添加到Hosts配置文件中。
相关推荐
总结,EJB3.0无状态SessionBean的例子展示了如何利用注解简化开发流程,以及如何通过本地和远程接口进行组件间的通信。理解并掌握这些概念对于构建可扩展、健壮的企业级Java应用至关重要。通过学习这个示例,开发者...
**ejb3.0 第2,3讲 - 开发第一个无状态会话bean和客户端** 在Java企业版(Java EE)中,Enterprise JavaBeans(EJB)是用于构建可扩展、安全和事务处理的服务器端应用程序的核心组件。EJB 3.0是一个重要的版本,它极...
通过以上讨论,我们对在Jboss环境下开发和使用EJB会话Bean有了更深入的理解。无论是无状态还是有状态,会话Bean都是构建企业级应用程序的重要组件,而Jboss作为强大的应用服务器,提供了丰富的功能来支持这些组件的...
无状态会话Bean适用于方法调用不依赖于前一次调用的状态,而有状态会话Bean则保留了客户端调用之间的状态信息。 4. **查询语言(JPQL)**: Java Persistence Query Language(JPQL)是EJB 3.0中的一种面向对象的...
- **无状态会话Bean (Stateless Session Beans)**: 提供无持久性状态的业务逻辑服务。它们不维护与客户端的会话,每次调用都是独立的,适合处理大量并发请求。 - **有状态会话Bean (Stateful Session Beans)**: ...
无状态会话Bean不维护与客户端的会话状态,对每个方法调用,它都不会记住之前的状态。这意味着同一个SLSB实例可以服务于多个客户端,提高了并发性能。在EJB3中,我们通过在接口上添加`@Stateless`注解来定义一个无...
【无状态会话Bean实验指导】的文档主要涵盖了如何开发和测试无状态Session Bean的步骤,这是企业级JavaBeans(EJB)技术的一部分,属于中间件领域的知识。EJB是Java平台上的一个标准,用于构建可扩展、可靠的分布式...
**EJB3.0实例教程**是一份详细指导开发者如何使用Enterprise JavaBeans 3.0(EJB3.0)技术进行企业级应用开发的电子文档。EJB3.0是Java EE(Java Platform, Enterprise Edition)规范的一部分,旨在简化企业级组件的...
开发一个有状态会话Bean需要继承javax.ejb.SessionBean接口,并实现相应的生命周期方法,如ejbCreate()、ejbRemove()、ejbPassivate()、ejbActivate()等。 5. 部署到应用服务器 在部署到应用服务器时,需要配置ejb...
9. **异步方法调用**:EJB 3.0允许会话bean定义异步方法,使得客户端可以在不等待结果的情况下继续执行其他任务,提高了系统的并发性能。 10. **安全性**:EJB 3.0提供了基于角色的访问控制(Role-Based Access ...
接下来,我们将通过一个具体的EJB 3.0无状态会话bean的示例来展示如何编写服务器端程序。 1. **无状态会话Bean**: - 在EJB 3.0中,无状态会话Bean是最常用的一种类型,用于执行业务逻辑,且不会保留任何会话状态...
6. **实体Bean的无状态与有状态**:EJB 3.0中的会话Bean分为无状态会话Bean(`@Stateless`)和有状态会话Bean(`@Stateful`),前者不保留客户端的状态,每次调用都是独立的;后者则可以保存客户端状态,支持多个...
EJB 3.0弃用了XML配置,大量使用注解进行配置,如`@Stateless`、`@Stateful`、`@MessageDriven`分别用于声明无状态会话Bean、有状态会话Bean和消息驱动Bean。这些注解使得代码更加清晰,减少了配置文件的维护工作。 ...
无状态会话Bean适用于方法调用,而有状态会话Bean则能保持客户端的会话状态。 4. **持久化(Persistence)** 《EJB3.0持久化开发手册》将详细讲解JPA的使用,包括实体管理器(EntityManager)、实体管理工厂...
在EJB3.0中,只需通过`@Stateless`注解标记类即可创建无状态会话Bean。 - 示例中的`Company`类就是一个无状态会话Bean,实现了`CompanyRemote`接口,提供了获取公司名称和员工列表的方法。 2. **远程接口(Remote ...
EJB 3.0的会话Bean分为无状态会话Bean(`@Stateless`)和有状态会话Bean(`@Stateful`)。无状态Bean适用于方法调用之间不需要保持状态的情况,而有状态Bean可以存储客户端的上下文信息,为同一客户端的多次调用提供...
- **无状态会话Bean(Stateless Session Bean)**: 每次调用都创建新的实例,不保留任何客户端上下文,适用于执行独立的业务操作。 - **有状态会话Bean(Stateful Session Bean)**: 保存客户端的会话状态,可以跟踪...
2. **无容器接口(No Interface View)**: EJB 3.0允许创建无接口的企业bean,只需一个实体bean类,简化了客户端的调用。 3. **持久化(Persistence)**: EJB 3.0集成JPA(Java Persistence API),提供了对数据库...