/**
     * 在挂起Bean实例前,EJB容器会调用它
     */
    @PrePassivate
    public void passivate(InvocationContext ctx) throws Exception {
        System.out.println(this.toString()+"cb:passivate()");
        ctx.proceed();
    } 你的代码注释不是已经说明这个问题了吗?我觉得技术没有流行不流行的,万变不离其踪,知道原理了,其他的都一样。个人意见。

解决方案 »

  1.   

    楼主是看精通EJB3.0(Mastering EJB3.0)吧,他写这本书不是针对某个应用服务器的。
    所以说“设置会话bean实例限制在2个以内”。
    因为不同的应用服务器,它的ejb配置文件格式是不一样的。你要参考应用服务器的安装手册
      

  2.   

    回楼上,我是在看那本书,,那就是说要配置glassfish了?另外就是,,书上的结果似乎没执行打印挂起和激活,后来我索性new了100个bean ,结果也是差不多 。。
      难道这就算观察到了有状态bean的挂起和激活操作了吗
      

  3.   

    要想看到激活和挂起的效果,关键就是设置应用服务器里的session bean池的大小(也就是你要去找glassfish的ejb配置文件,将这个池限制成2个)。
    至于没有执行挂起的方法,原因也是上述池的大小,我猜glassfish是把所有session bean都放到内存池去了,没有“钝化”到硬盘上。