带有@EJB的GlassFish 4 + JAX-RS过滤器 [英] GlassFish 4 + JAX-RS Filter with @EJB
问题描述
在资源类中,我可以通过将类@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屋!