您不应从无状态会话Bean调用有状态会话Bean。
阅读以下内容:JEE6教程-
会话Bean
无状态Bean对您的会话一无所知。任何时候调用它,它都是无状态的。然后,它调用有状态会话Bean。毫不奇怪,它没有与客户端会话状态相关的任何上下文,因为它是从无状态对象调用的。
我不知道它是否会起作用,但是您可以尝试通过执行JNDI查找而不是使用@EJB表示法进行DI来获取上下文。无状态ejb中的类似内容可能会起作用。您可能必须使用它,我不能保证任何事情。它应该获得客户端调用无状态ejb的上下文。客户端将需要具有会话上下文/作用域或忘记它。
@Resource SessionContext sessionContext;MyStatefulBean msb = (MyStatefulBean)sessionContext.lookup("ejb/MyStatefulBean");msb.doSomething(fubar);最好从具有会话范围的客户端或从另一个有状态ejb调用有状态会话Bean。无状态和有状态有不同的原因。



