这是根据精通ejb一书中的count stateful session bean所做,但是现在有一个问题就是这个sessionbean好像再执行过程中,没有被挂起 ,这样也就更加不存在什么激活了,ejbpassivate 和ejbactivate两个方法就没有被调用到,通过jboss控制传出来的信息,根本就不存在这两个方法的调用
大致代码如下所示:
本地接口countjava
package examples;
import javax.ejb.*;
import java.rmi.*;
public interface Count extends EJBObject
{
public int count() throws RemoteException;
}
home接口
package examples;
import javax.ejb.*;
import java.rmi.*;
public interface CountHome extends EJBHome
{
public Count create(int value) throws RemoteException, CreateException;
}
beanfangfa
package examples;
import javax.ejb.*;
import java.rmi.*;
public class CountBean implements SessionBean
{
public int val;
public int count()
{
System.out.println("count()....");
return ++val;
}
public void ejbCreate(int val) throws CreateException
{
this.val=val;
System.out.println("ejbCreate()");
}
public void ejbRemove()
{
System.out.println("ejbRemove()");
}
public void ejbActivate()
{
System.out.println("ejbActivate()...");
}
public void ejbPassivate()
{
System.out.println("ejbPassivate()");
}
public void setSessionContext(SessionContext ctx)
{
}
}
ejb jar
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<!--
<ejb-jar version="2.1" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:msi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">-->
<ejb-jar>
<description>StatefulEJB</description>
<display-name>StatefulEJB</display-name>
<enterprise-beans>
<session>
<ejb-name>STATEFULEJB</ejb-name>
<home>examples.CountHome</home>
<remote>examples.Count</remote>
<ejb-class>examples.CountBean</ejb-class>
<session-type>Stateful</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
client
import examples.*;
import java.util.*;
import javax.naming.Context;
import javax.naming.InitialContext;
/*
this class used for test Statefulejb STATEFULEJB
*/
public class CountClient
{
public static void main(String[] args) throws Exception
{
Properties props=new Properties();
props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url","jnp://192.168.52.136:1099");
Context ctx=new InitialContext(props);
CountHome home=(CountHome)javax.rmi.PortableRemoteObject.narrow(ctx.lookup("STATEFULEJB"),CountHome.class);
Count[] count=new Count[3];
int countval=1;
System.out.println("Instantiating bean.......");
for(int i=0;i<count.length;i++)
{
count[i]=home.create(countval);
countval=count[i].count();
System.out.println(countval);
Thread.sleep(5000);
}
System.out.println("call count on beans.....");
for(int i=0;i<3;i++)
{
countval=count[i].count();
System.out.println(countval);
Thread.sleep(5000);
}
// remove these beans
for(int i=0;i<3;i++)
{
count[i].remove();
}
}
}
分享到:
相关推荐
在EJB2.x版本中,SessionBean扮演了服务代理的角色,执行特定的业务任务,并且可以分为无状态(Stateless)和有状态(Stateful)两种类型。 **无状态SessionBean**不保留任何会话信息,每个调用都是独立的,适合...
它可以是无状态的(Stateless Session Bean),为每个请求创建新的实例,或者有状态的(Stateful Session Bean),维护与特定客户端会话的状态。 - **Entity Bean**:用于表示数据库中的持久化对象,实现业务实体的...
有状态Session Bean(Stateful Session Bean)在会话期间保留客户端的状态信息。这意味着同一个客户端的多次调用将始终与同一个bean实例交互,允许bean跟踪和管理客户端的会话数据。这种类型的bean在购物车或游戏...
**EJB3.0无状态SessionBean例子** Enterprise JavaBeans(EJB)是Java平台上的一个核心组件,用于构建企业级分布式应用。EJB3.0是EJB规范的一个重大改进,它引入了诸多简化开发的新特性,使得EJB更加轻量级且易于...
### EJB3图文教程之开发Session Bean:详细解析与实践指南 #### 一、环境搭建:JBuilder2007与JBoss4.0的完美结合 在开始EJB3.0的Session Bean开发之前,首先需搭建一个适宜的开发环境。本教程将指导你如何在...
**企业级JavaBeans (EJB) 3.0:核心概念与Session Bean详解** 企业级JavaBeans(Enterprise JavaBeans,简称EJB)是Java平台上用于构建可部署在服务器端的企业级应用的重要组件模型。EJB 3.0是EJB规范的一个重大...
Session Bean是EJB的一种类型,它代表了客户端与服务器之间的临时会话状态,提供了无状态或有状态的服务。 在"ejb sessionbean demo"中,我们主要探讨的是如何使用EJB的Session Bean进行开发和演示。Session Bean...
在Java企业级应用开发中,会话Bean(Session Bean)是EJB(Enterprise JavaBeans)规范的一部分,用于处理客户端的业务逻辑。会话Bean分为两种类型:无状态会话Bean和有状态会话Bean。本知识点主要聚焦于"有状态的...
1. **Stateful Session Bean**:状态ful会话Bean保留了与特定客户端会话相关联的状态信息。这意味着它能够跟踪客户端的状态,例如购物车中的商品,从而提供个性化的服务。 2. **Stateless Session Bean**:无状态...
对于有状态session bean(Stateful session bean),由于需要维护会话状态,EJB容器采用了激活和钝化技术来节省资源。钝化是指在内存资源紧张时,将stateful session bean的状态序列化并存储到持久化存储中,同时从...
Session Bean可以是无状态的(Stateless Session Bean),每个客户端请求都被视为独立,或者有状态的(Stateful Session Bean),可以记住客户端的会话信息。 2. **MyEclipse开发工具**: MyEclipse是一款强大的...
与Stateful Session Bean(有状态会话Bean)不同,它维护了客户端会话状态,而Stateless Session Bean(无状态会话Bean)则不保留任何客户端状态,每次调用都独立于其他调用。Session Bean主要用于表示业务逻辑,...
本话题主要关注两种特定类型的EJB:Stateful Session Bean(有状态会话bean)和Singleton Session Bean(单例会话bean),它们在实现网上商城这样的复杂业务系统中起着关键作用。 Stateful Session Bean(有状态...
Session Bean是Enterprise JavaBeans (EJB)的一种重要组件,它主要负责实现业务逻辑,处理客户端的请求。Session Bean不直接映射数据库中的共享数据,其状态是非持久化的,不需要写入数据库。它们由EJB容器管理,...
在Java EE中,SessionBean是企业 Bean(EJB)的一种类型,它提供了服务器端的方法来处理客户端的请求。SessionBean分为两种主要类型:有状态(Stateful Session Beans,SSB)和无状态(Stateless Session Beans,SSB...
JavaBean和Session Bean是Java企业级应用开发中的重要概念,特别是在使用Enterprise JavaBeans(EJB)技术时。本文将深入探讨这两个概念,以及如何在实际项目中使用它们。 首先,让我们了解什么是JavaBean。...
### EJB3.0开发Session Bean:从理论到实践 #### 概述 EJB(Enterprise JavaBeans)是Java EE规范中的一个重要组成部分,用于构建分布式、健壮的企业级应用程序。自EJB3.0版本起,它引入了注解驱动的开发模型,...