0

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>

すべてが見栄えがよく、問題なく動作します。私は今、全体をもう少し柔軟にしたいと思って、この記事に来ました: web.xml を変更せずにサーブレットにフィルターを追加する方法 回答で提案されているように、FilterChain とパターンを含む GodFilter を追加しました。それはかなりうまくいっています。フィルターは定義どおりに呼び出されます。私の問題は何ですか: EJB (rv) が注入されていません。私にとっては常に null です。(単純な)問題が欠けていると確信していますが、それでも間違いは見つかりません。

何か案は?

前もって感謝します

4

1 に答える 1