Producer/consumer 存在依赖注入错误的模式

Producer/consumer Pattern with dependency injection error

Java EE 7 - Injection into Runnable/Callable object

继续这个问题,我有一种情况...我正在使用 Producer/Consumer 模式来使用对象列表。我的 Class 消费者是 Runnable 的一个实现。

public class MYConsumer implements Runnable{

   @EJB
   private MYService myService;    

   private BlockingQueue<> queue;

   public MYConsumer (BlockingQueue<> q){
        this.queue=q;
   }
  @Override
    public void run() {
       /** Error is here**/    
       myService.insert(); 
    }
}

模式的实现工作正常,但是当我尝试使用 myService 时,它​​为 Null。容器未注入服务。我知道这是因为容器只知道自己创建的实例。

但是如何克服这个问题呢? 谢谢

您应该在会话 bean 中实例化您的可运行对象。此会话 bean 将实例化您想要的服务,然后将其传递给您的可运行对象。