这是根据精通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();
}
}
}
分享到:
相关推荐
对EJB中session bean的见解,转载自其它技术网站
里面包含本地接口的SessionBean和远程接口的SessionBean。
主要提供声明周期管理、代码产生、持续性管理、安全、事务管理、锁和并发行管理等服务
EJB3.0开发Session Bean.rar EJB3.0开发Session Bean.rar
ejb sessionbean demoejb sessionbean demoejb sessionbean demoejb sessionbean demo
EJB3图文教程之开发Session Bean
ejb实例包括session bean和实体bean
javax.ejb.SessionBean.class javax.ejb.SessionContext.class javax.ejb.SessionSynchronization.class javax.ejb.TimedObject.class javax.ejb.Timer.class javax.ejb.TimerHandle.class javax.ejb.TimerService....
Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来...
JavaEE5学习笔记05-EJB之会话Bean总结...
NULL 博文链接:https://webqq.iteye.com/blog/1005892
EJB3.0开发Session Bean
在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除……
基于java的开发源码-EJB中有、无状态SessionBean的两个例子.zip 基于java的开发源码-EJB中有、无状态SessionBean的两个例子.zip 基于java的开发源码-EJB中有、无状态SessionBean的两个例子.zip 基于java的开发源码-...
简要介绍JNDI,EJB及其开发应用技术,附有Session Bean的开发实例
ejb入门录像,MyEclipse开发sessionBean实例
网上看的一个视频教程里的一个Demo,EJB消息驱动bean Demo。
ejb3实例(包括sessionbean和entitybean,sql),sqlserver数据库,配置好JNDI数据源后即可运行,值得关注。
Java SessionBean状态判断的例子,代码包中的两个实例,分别对无状态SessionBean和有状态SessionBean进行了演示,请注意,Home对象是EJB对象的制作生成库,该方法生成EJB对象,value参数用于计数器的初始化,在无状态...