带有@EJB的GlassFish 4 + JAX-RS过滤器 [英] GlassFish 4 + JAX-RS Filter with @EJB

查看:94
本文介绍了带有@EJB的GlassFish 4 + JAX-RS过滤器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Glassfish 4.0开发一个REST应用程序。



在资源类中,我可以通过将类@Stateless和注入@EJB注入类是无状态EJB)。



但是这种方法在JAX-RS过滤器中不起作用。



请参阅以下代码:

  @Provider 
public class UpdateFilter实现ContainerRequestFilter {

@EJB
private MyBeanInterface doStuffBean;

@Override
public void filter(ContainerRequestContext requestContext){

...
}
}

doStuffBean始终为空。



解决方案

我相信@EJB只适用于像其他EJB和Servlet这样的Java EE管理类。



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


I'm developing an REST application using Glassfish 4.0.

In resource classes I can get injection to work by making the class @Stateless and injecting via @EJB (injected class is an stateless EJB).

However this approach does not work in an JAX-RS filter. I cannot get injection to work at all.

See code below:

@Provider
public class UpdateFilter implements ContainerRequestFilter {

    @EJB
    private MyBeanInterface doStuffBean;

    @Override
    public void filter(ContainerRequestContext requestContext) {

        ...
    }
}

doStuffBean is always null.

Any suggestions?

解决方案

I believe the @EJB only works in Java EE managed classes like other EJBs and Servlets.

If you are using CDI you could use @Inject annotation instead but if this class is not a ManagedBean then you will need to do a lookup.

这篇关于带有@EJB的GlassFish 4 + JAX-RS过滤器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆