ejb当前正在执行bean

时间:2013-02-03 17:22:27

标签: java java-ee ejb jboss5.x ejb-2.x

我有几个无状态bean和一些由bean调用的服务类。我不能直接将bean实例传递给该服务类。

有没有办法获得当前正在执行的bean实例?我只是想知道是否有任何现有机制,所以我不需要编写拦截器和相关逻辑来保存bean实例。

更具体一点:

public class MyBean implements MyBeanInterface, CommonBeanInterface {
     public void businessMethod() {
         SomeService service = ... // service is somehow obtained
         service.doWork();
     }
}

public class SomeServiceImpl implements SomeService {
     public void doWork() {
          CommonBeanInterface currentBean = getCurrentBean(); // its implementation I need
     }
}

因此在服务类中,我需要获取调用此服务的bean实例。

任何信息都会有所帮助!

1 个答案:

答案 0 :(得分:1)

我认为没有API来识别调用该服务的bean。请注意,如果服务与bean位于同一容器中(即不涉及远程调用),则它们将在同一线程上执行。因此,您可以使用ThreadLocal传递一些信息。