对于类型X的不满意的依赖关系,在注入点使用限定符@Default(注入EJB会话bean时)

时间:2016-11-03 13:13:05

标签: java ejb cdi

我有一个以ServletContextListener启动的应用程序。这个weblistener注入一个可调用的对象,并调用call方法,这个例子简化了它。

str

masterModule调用另一个注入对象的进程方法,如下所示。在这个过程对象中,我尝试通过会话bean访问一些业务逻辑。

@WebListener
public class StartupServletContextListener implements ServletContextListener {

  @Inject
  Instance<MasterModule> masterModules;

  @Override
  public void contextInitialized(ServletContextEvent servletContextEvent) {
      //Have a future object with the MasterModule
      MasterModule m = masterModules.get();
      try {
          m.call();
      } catch (Exception e) {
          e.printStackTrace();
      }
  }

  @Override
  public void contextDestroyed(ServletContextEvent servletContextEvent) {
  }  
}

在process方法中,在TestModule中,我尝试通过会话bean访问一些业务逻辑。

public class MasterModule implements Callable<String> {

  @Inject
  private TestModuleI test;

  @Override
  public String call() throws Exception {
      test.process();
      return "";
  }
}
public interface TestModuleI {
  void process();
}

samplesession bean目前只是一个用于测试的普通sessionbean。 我的问题是,当我尝试在TestModuleImp中注入EJB时,我得到了在SO标题中编写的部署错误。我可以从servletContextListener注入EJB。我的beans.xml有bean-discovery-mode = all

0 个答案:

没有答案