首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将EJB注入ResourceFilterFactory (泽西岛)

如何将EJB注入ResourceFilterFactory (泽西岛)
EN

Stack Overflow用户
提问于 2012-11-27 12:22:19
回答 1查看 1.4K关注 0票数 0

我似乎无法通过@EJB@Inject向泽西岛注射任何东西。当我在FilterFactory中使用@EJB/@Inject时,字段仍然是空的,但是注入其他bean可以。

我可以使用@Context成功地为FIlterFacory注入。

我在这里错过了什么?

代码语言:javascript
复制
public class FilterFactory implements ResourceFilterFactory{

    @EJB
    private MyFilter myFilter ;

    @Override 
    public List<ResourceFilter> create(AbstractMethod am) {
        List<ResourceFilter> filters = new ArrayList<ResourceFilter>();
        filters.add(myFilter);
        return filters;
    }

我的web.xml的一部分:

代码语言:javascript
复制
<init-param>
     <param-name>com.sun.jersey.spi.container.ResourceFilters</param-name>
     <param-value>com.jea.openxchange.rest.filter.FilterFactory</param-value>
</init-param>

我的过滤器

代码语言:javascript
复制
@Stateless
public class MyFilter implements ResourceFilter,ContainerResponseFilter  {

    @Override
    public ContainerResponse filter(ContainerRequest request, ContainerResponse response) {
        //todo
        return response;
    }

    @Override
    public ContainerRequestFilter getRequestFilter() {
        return null;
    }

    @Override
    public ContainerResponseFilter getResponseFilter() {
        return this;
    }  
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-27 12:30:34

这可能是泽西岛如何创建FilterFactory实例的问题。如果它不是由容器创建的,那么CDI就不能工作,@EJB也不能工作。根据Java规范,新创建或反射创建的对象不被管理,因此不会发生注入。新的CDI规范将解决这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13584168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档