1.通常服务器有一个ejb的连接池,所以会创建多个ejb的实例。所谓就是说通过a实例来服务客户与通过b实例来服务是一样的,一样的不是指同一个。2.如果你希望只有一个实例,使用单例模式设计。3. 这个问题比较奇怪,确认一下你的FirstBean的active是不是重载的。

解决方案 »

  1.   

    3. 这个问题比较奇怪,确认一下你的FirstBean的active是不是重载的
    3.无状态session bean  的ejbActivate() 不会被调用(有状态sesionn bean和实体bean 会调用)
      无状态session bean 的ejbPassivate() 方法也不会被容器调用,因为无状态session bean
      从不钝化,他只有两中状态: 不存在和就绪。
      

  2.   

    虽然在 stateless session bean中 ejbActivate() 和ejbPassivate() 没用,
    但是由于它们被申明在SessionBean接口里,所以必须要定义。
      

  3.   

    1:不是说对于无状态bean,服务器里面有一个实例和n个实例是一样的吗,就是说通过a实例来服务客户与通过b实例来服务是一样的,在于容器的选择。那么服务器为何每次都要新建一个FirstBean,而不是重用一个呢?....对于同一个EJBObject的对象引用,EJB Container 不一定每次都配置相同的bean实例来执行
    业务方法的请求,即使是对同一个业务方法的连续两次请求,所使用的bean的实例都不一定会是
    同一个,除非ready pool 内只有一个bean 实例。......请楼主注意这段话里面用了两个"不一定",和一个"除非"。
    我想可以解释你所发生的现象了。