java - ejb获取当前正在执行的bean

标签 java jakarta-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 实例。

任何信息都会有帮助!

最佳答案

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

关于java - ejb获取当前正在执行的bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14675083/

相关文章:

java - 如何编写 Java EE/EJB 单例?

java - 为什么字符串中的最后一个数字与正则表达式组不匹配?

java - 将数组添加到另一个更大尺寸的数组

java - 为什么我的生产者消费者程序被阻塞?

java - 使用枚举数据类型发送 JSON

java - Spring框架bean

java - J2EE 设计模式 - 调度程序 View 和为 Worker 提供服务

ejb - 如何在实体 (EJB3) 中插入 Null 值?

java - 将 Spring Security 与 EJB 或 Spring 一起使用?

java - 配置 p2 存储库管理器以通过编程方式使用客户端证书连接到 HTTPS 存储库