Java CDI-将SessionBean注入ServletContextListener触发的服务

Java CDI-将SessionBean注入ServletContextListener触发的服务,java,dependency-injection,jboss7.x,cdi,servletcontextlistener,Java,Dependency Injection,Jboss7.x,Cdi,Servletcontextlistener,我有一个ServletContextListener实现,它调用一些bean。我试图将会话bean注入到该bean中,但注入的会话bean始终为null 是否在执行期间,ServletContextListener尚未启动BeanManager?CDI和侦听器是否存在已知的限制?还是我的代码中遗漏了什么 下面是我尝试注入的SessionBean的定义- @Stateless @Local(MetricStubSessionLocal.class) @Remote(MetricStubSessio

我有一个
ServletContextListener
实现,它调用一些bean。我试图将会话bean注入到该bean中,但注入的会话bean始终为
null

是否在执行期间,
ServletContextListener
尚未启动
BeanManager
?CDI和侦听器是否存在已知的限制?还是我的代码中遗漏了什么

下面是我尝试注入的SessionBean的定义-

@Stateless
@Local(MetricStubSessionLocal.class)
@Remote(MetricStubSessionRemote.class)
public class MetricStubSessionBean implements MetricStubSessionLocal,
    MetricStubSessionRemote {
    ...
}
这是我要注入的豆子-

public class MetricStubGeneratorJob implements IdpTimer {

    @Inject
    private MetricStubSession metricStubSession;

    private TimerStatus status;

    public MetricStubGeneratorJob() {
        super();
    }

    public MetricStubGeneratorJob(TimerStatus status) {
        this.status = status;
    }
    ...
}

提前谢谢

您应该在bean中注入本地接口:
@inject private matricsubsessionlocal metricStubSession谢谢,但不幸的是,这不起作用。无论如何,我的本地接口正在扩展
MatricSubSession
…您的项目是如何结构的?您在EJBJAR中使用EAR部署会话bean,在WAR中使用ServletContextListener吗?您在JBoss server.log中看到了什么?如何将MetricStubGeneratorJob注入ServletContextListener?可能是因为在ServletContextListener执行期间BeanManager尚未启动-否,因为CDI在servlet上下文之前运行。@chearius我能够
@将bean注入
ServletContextListener
,但是当我尝试使用
EntityManager
访问DB时,我在server.log:org.jboss.weld.context.ContextNotActivieException:weld-001303范围内没有活动上下文中得到此错误输入javax.enterprise.context.RequestScoped