从Ajax请求过滤器中的NullPointerException

时间:2015-09-21 08:49:29

标签: java ajax nullpointerexception servlet-filters

我最近从Apache迁移到NGINX作为Web服务器。 从那以后,我在一些AJAX请求中使用我的过滤器出现NPE错误:

java.lang.NullPointerException
at org.ulpmm.eev.web.administration.ModifyEleveDossierUtilisateur.VerificationDateEntree(ModifyEleveDossierUtilisateur.java:340)
at org.ulpmm.eev.web.administration.ModifyEleveDossierUtilisateur.modifyUser(ModifyEleveDossierUtilisateur.java:175)
at org.ulpmm.eev.web.administration.ModifyEleveDossierUtilisateur.doProcess(ModifyEleveDossierUtilisateur.java:142)
at org.ulpmm.eev.web.administration.ModifyEleveDossierUtilisateur.doPost(ModifyEleveDossierUtilisateur.java:91)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.ulpmm.eev.utils.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:125)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.ulpmm.eev.filter.RealIPFilter.doFilter(RealIPFilter.java:19)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

这是我的RealIPFilter.java:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        if (chain != null) {
            if (request instanceof HttpServletRequest) {
                RealIPRequestWrapper rirw = new RealIPRequestWrapper((HttpServletRequest) request);
                chain.doFilter(rirw, response);
            } else {
                chain.doFilter(request, response);
            }
        }
    }

第19行是chain.doFilter(rirw, response);

的那一行

我的SetCharacterEncodingFilter:

public void doFilter(ServletRequest request, ServletResponse response,
                         FilterChain chain)
        throws IOException, ServletException {

        // Conditionally select and set the character encoding to be used
        /*
        if (ignore || (request.getCharacterEncoding() == null)) {
            String encoding = selectEncoding(request);
            if (encoding != null)
                request.setCharacterEncoding(encoding);
        }
        */
        request.setCharacterEncoding("UTF-8");
        // Pass control on to the next filter
        if (chain != null) {
            chain.doFilter(request, response);
        }

    }

第125行也是chain.doFilter(request, response)

我认为NPE在chain,所以我加了一个测试,但没有变化。

似乎只有AJAX请求才会发生。除了他们我没有得到错误。

如果有人有线索,那将会很棒。)

谢谢。

马克

1 个答案:

答案 0 :(得分:0)

正如@marthusson和@Seelenvirtuose所说,NPE被抛入我的数据处理类而不是过滤器中。

过滤器只是继电器。

通过修复课程,一切都很好。

谢谢:)

相关问题