ejb中的3种bean:
![](/upload/picture/pic/39786/0c20fc8e-6a34-3b8c-ac3f-8655786dd9d9.bmp)
什么是会话bean?
![](/upload/picture/pic/39788/29b26d08-78eb-3170-85ef-860b9313758d.bmp)
编写第一个ejb3的会话bean:
步骤:
1.ejb企业级开发是面向接口编程的,我们完成第一个HelloWorld的例子,首先写接口,也就是远程接口(服务器端)
package cn.com.xinli.ejb3;
public interface HelloWorld
{
public String sayHello(String name);
}
2.在写接口的实现类(服务器端)
package cn.com.xinli.ejb3.impl;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import cn.com.xinli.ejb3.HelloWorld;
/*表明这个ejb是无状态的会话bean*/
@Stateless
/*声明这个ejb的远程接口是HelloWorld,必须要写这个注解,不写调用的时候会报错*/
@Remote(HelloWorld.class)
public class HelloWorldBean implements HelloWorld
{
public String sayHello(String name)
{
return name+",你好,世界!";
}
}
3. 开发客户端
jndi 环境 信息说明:
![](/upload/picture/pic/39790/edd8ddf4-0fe3-31a2-ba3a-d16fbca78e5b.bmp)
package cn.com.xinli.ejb3.test;
import java.util.Hashtable;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import cn.com.xinli.ejb3.HelloWorld;
public class EjbClient
{
public static void main(String[] args)
{
Hashtable evn = new Hashtable();
evn.put(Context.PROVIDER_URL, "127.0.0.1:1099");
evn.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
// Properties properties=new Properties();
// properties.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
// properties.setProperty("java.naming.provider.url", "localhost:1099");
try
{
InitialContext context=new InitialContext(evn);
/**
* ejb3比ejb2有可地方比较好,就是在jndi查找的时候不用我们在写ejb-jar.xml
* 只要我们按照jndi名字的查找规范就可以找到远程接口了
*
*/
HelloWorld helloword=(HelloWorld)context.lookup("HelloWorldBean/remote");
System.out.println(helloword.sayHello("huxl"));
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
4.部署服务器端,就是吧项目打成一个jar包放在jboss的D:\jboss-4.2.3.GA\server\default\deploy下
5.结果:
huxl,你好,世界!
分享到:
相关推荐
- **会话Bean(Session Beans)**:分为无状态会话Bean(Stateless Session Beans)和有状态会话Bean(Stateful Session Beans),无状态Bean处理简单事务,有状态Bean保持客户端会话状态。 2. **注解驱动开发** ...
例如,无状态会话Bean在第一次请求时被创建,之后的请求会被同一个实例服务,直到容器决定回收该实例。 **4. 事务管理** EJB 3.0支持声明式事务管理,开发者可以通过`@TransactionAttribute`注解来指定事务的属性...
EJB3.0中的会话Bean有两种类型:无状态会话Bean(Stateless Session Beans)和有状态会话Bean(Stateful Session Beans)。无状态Bean不维护客户端的会话状态,而有状态Bean则可以记住客户端的交互历史。 4. **依赖...
5. **简化会话bean(Session Beans)**:EJB 3.0区分了无状态会话bean(`@Stateless`)和有状态会话bean(`@Stateful`),无状态bean适用于简单的请求-响应模式,而有状态bean则能保持客户端会话的上下文。...
有无状态会话Bean和有状态会话Bean两种,前者不保存客户端状态,后者则可以。 - **消息驱动Bean(Message Driven Bean)**:用于处理JMS(Java Message Service)消息,实现异步处理。 **3. 注解驱动** EJB3.0的...
3. **创建第一个EJB**:动手实践编写无状态会话Bean、实体Bean、消息驱动Bean。 4. **注解和依赖注入**:学习如何使用各种注解,并理解依赖注入的工作原理。 5. **持久化和查询**:深入研究JPA,编写JPQL查询,理解...
2. **创建EJB3.0组件**:定义EJB3.0实体类、会话bean和消息驱动bean,用以实现业务逻辑。使用注解如@Service、@Stateless、@PersistenceContext等进行声明式配置。 3. **定义AMF通道**:在BlazeDS/LCDS配置中定义AMF...
在这个“第一个EJB简单例子”中,我们将深入探讨如何创建和理解基本的EJB组件。 1. **EJB组件类型**: - **会话Bean(Session Beans)**:代表客户端的一次交互或会话。它们可以是状态ful(维护会话状态)或状态...
在《精通EJB第三版》一书中,作者深入浅出地介绍了EJB 3.0的核心概念和技术,包括实体Bean(Entity Beans)、会话Bean(Session Beans)、消息驱动Bean(Message-Driven Beans)以及容器管理的持久性(Container-...
EJB3.0的会话Bean分为无状态会话Bean(Stateless Session Beans)和有状态会话Bean(Stateful Session Beans)。无状态Bean不维护会话状态,适合处理独立的操作;有状态Bean则可以存储客户端的会话信息,适用于需要...
- **激活(Activation)**:对于有状态会话Bean,当第一个客户端请求时,Bean被激活。 - **使用(Invocation)**:客户端通过接口调用Bean的方法执行业务逻辑。 - **钝化(Passivation)**:对于有状态会话Bean,...
3. **会话Bean(Session Beans)**:会话Bean分为无状态会话Bean(Stateless Session Beans)和有状态会话Bean(Stateful Session Beans)。无状态Bean不保留与客户端交互的状态,而有状态Bean则可以存储客户端状态...
它们可以是无状态或有状态的,无状态会话Bean适用于一次性的交互,而有状态会话Bean则能保持与客户端的交互上下文。 2. **实体Bean(Entity Beans)**:实体Bean代表持久化的业务对象,如数据库中的记录。它们分为...
1. 会话bean:会话bean代表临时的、状态化的或无状态的业务逻辑,它们与客户端交互,执行计算或访问数据库。无状态会话bean适用于不保存状态的简单操作,而状态会话bean则允许跟踪用户会话状态,适用于更复杂的交互...
会话Bean可以是无状态的,处理一次性请求,也可以是有状态的,保持与客户端的会话状态。 第二章深入探讨了会话Bean的创建、配置和使用,包括接口定义、实体Bean的使用、以及如何处理事务和异常。此外,教程还可能...
1. **会话Bean(Session Beans)**:代表客户端的一次交互或一个会话。分为有状态会话Bean(Stateful Session Bean)和无状态会话Bean(Stateless Session Bean)。有状态Bean能保持与客户端交互过程中的状态,而无...