使用@EJB的GlassFish 4 + JAX-RS过滤器

baf*_*tor 5 ejb glassfish jax-rs jersey

我正在使用Glassfish 4.0开发REST应用程序.

在资源类中,我可以通过创建@Stateless类并通过@EJB注入来注入工作(注入类是无状态EJB).

但是,这种方法在JAX-RS过滤器中不起作用.我根本无法注射工作.

见下面的代码:

@Provider
public class UpdateFilter implements ContainerRequestFilter {

    @EJB
    private MyBeanInterface doStuffBean;

    @Override
    public void filter(ContainerRequestContext requestContext) {

        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

doStuffBean始终为null.

有什么建议?

小智 1

我相信 @EJB 只适用于 Java EE 托管类,就像其他 EJB 和 Servlet 一样。

如果您使用 CDI,则可以使用 @Inject 注释,但如果此类不是 ManagedBean,那么您将需要进行查找。