我们有一个位于webservices(EJB3)后面的无状态EJB,这个EJB还加载了一个在它发出的调用中传递的EntityManager。我有一个问题。
同时调用webservice是使用相同的EJB还是有不同的实例?我问这个特别是关于注入的EntityManager的使用。
由于
答案 0 :(得分:3)
应用程序服务器是否使用相同或不同的。你可能会认为他们是不同的。
现在,如果您正在注入它,我假设您已将其声明为实例变量,这对于无状态EJB来说是一个非常糟糕的主意,因为它很好。它不应该有国家。
让app服务器完成其工作,而不是注入EntityManager,而只需从上下文中获取它。来自无状态的每个方法调用都属于一个事务,不会干扰其他调用。
总结:假设它们是不同的实例,并且不要将自己注入那些类型的对象。从应用服务器负责的上下文中取出它们。
我希望我能正确理解你的问题。