Servlets 手动调用Servlet过滤器-注入的EJB始终为空(NullPointerException)

Servlets 手动调用Servlet过滤器-注入的EJB始终为空(NullPointerException),servlets,filter,ejb,servlet-filters,web.xml,Servlets,Filter,Ejb,Servlet Filters,Web.xml,我确实在ServletFiltering和EJB注入方面有问题。我已经配置了一个ServletFilter并将其包含到我的web.xml中 过滤器类别: package at.dot.web.rest.common.utils; public class AuthRequestFilter implements Filter { @EJB private RequestValidator rv; @Override public void doFilter(ServletRequest se

我确实在ServletFiltering和EJB注入方面有问题。我已经配置了一个ServletFilter并将其包含到我的web.xml中

过滤器类别:

package at.dot.web.rest.common.utils;
public class AuthRequestFilter implements Filter {

@EJB
private RequestValidator rv;

@Override
public void doFilter(ServletRequest servletRequest,
        ServletResponse servletResponse, FilterChain filterChain)
        throws IOException, ServletException {

  AuthRequestWrapper wr = new AuthRequestWrapper((HttpServletRequest) servletRequest);
  if (rv.isRequestAccepted(wr)) {
     filterChain.doFilter(wr, servletResponse);
  } 

@Override
public void init(FilterConfig filterConfig) throws ServletException {
}

@Override
public void destroy() {
}
}
web.xml:

<filter>
  <filter-name>AuthRequestFilter</filter-name>
  <filter-class>at.dot.web.rest.common.utils.AuthRequestFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>AuthRequestFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

AuthRequestFilter
at.dot.web.rest.common.utils.AuthRequestFilter
AuthRequestFilter
/*
每件事看起来都很好,没有任何问题。我现在确实想让整个事情变得更灵活一点,于是我来写这篇文章: 我添加了GodFilter,包括Ansare中建议的FilterChain和模式。这很有效。过滤器按定义调用。我的问题是:EJB(rv)没有注入。对我来说总是空的。 我很确定我遗漏了任何(简单的)问题,但是我没有发现错误

有什么想法吗


提前感谢

所以我自己解决了这个问题:

@Stateless
@LocalBean
@RequestScoped
public class AuthRequestFilter implements Filter { .. }

@RequestScoped
public class MasterFilter implements Filter { 
   @EJB(beanName = "AuthRequestFilter")
   private AuthRequestFilter arf;

   ..
}
当然,新的AuthRequestFilter()不会注入EJB—我必须注入过滤器