有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Spring引导2随机500和400错误

我基于Spring Boot 2.0.4版本创建了4个微服务的集合,其中一个微服务充当通往其他微服务的网关

使用Angular应用程序作为我的客户端,当我向网关应用程序发出请求时,我会遇到随机的500或400个错误

Stacktrace是这样的

java.lang.NullPointerException: null
    at org.springframework.web.util.UrlPathHelper.removeJsessionid(UrlPathHelper.java:517) ~[spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.util.UrlPathHelper.removeSemicolonContent(UrlPathHelper.java:502) ~[spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.util.UrlPathHelper.decodeAndCleanUriString(UrlPathHelper.java:435) ~[spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.util.UrlPathHelper.getOriginatingRequestUri(UrlPathHelper.java:382) ~[spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1062) [spring-webmvc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1008) [spring-webmvc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) [spring-webmvc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974) [spring-webmvc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877) [spring-webmvc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) [tomcat-embed-core-8.5.32.jar:8.5.32]
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851) [spring-webmvc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) [tomcat-embed-core-8.5.32.jar:8.5.32]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) [tomcat-embed-core-8.5.32.jar:8.5.32]
    ...

或者

org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public java.lang.Object com.fe.api.routing.v1.controllers.chat.LikeController.isLike(com.commons.v1.commandObjects.chat.LikeCommand,com.fe.commons.v1.dtos.AppUserDTO) throws java.lang.Exception
    at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)
    at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:130)
    at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:124)
    at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:161)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:131)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.fe.api.routing.config.HTTPRoutesFilter.doFilter(HTTPRoutesFilter.java:384) ...

我创建了一个过滤器,在将请求发送给控制器之前拦截并执行一些业务逻辑

  public class HTTPRoutesFilter implements Filter {
       @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        httpServletRequest = (HttpServletRequest) request;
        httpServletResponse = (HttpServletResponse) response;

        ResponseObject responseObject = new ResponseObject();

        Map<String, String> headersMap = new HashMap<>();

        String platformHeader = RequestReader.getRequestHeaderValue(httpServletRequest, PLATFORM_HEADER_KEY);

        String xAuthToken = RequestReader.getRequestHeaderValue(httpServletRequest, AUTH_TOKEN_HEADER_KEY);

        // for CORS enablement
        headersMap.put("Access-Control-Allow-Origin", "*");
        headersMap.put("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE, PATCH");
        headersMap.put("Access-Control-Max-Age", "1728000");
        headersMap.put("Access-Control-Allow-Headers", Arrays.asList(HttpHeaders.CONTENT_TYPE, "A_T", "x-platform", "x-auth-token", RESPONSE_CODE_HEADER_KEY).stream().reduce((x,y) -> (x.toLowerCase() + "," + y.toLowerCase())).get());
        headersMap.put("Access-Control-Expose-Headers", Arrays.asList(HttpHeaders.CONTENT_TYPE, "A_T", "x-platform", "x-auth-token", RESPONSE_CODE_HEADER_KEY).stream().reduce((x,y) -> (x.toLowerCase() + "," + y.toLowerCase())).get());

        headersMap.forEach(((HttpServletResponse) response)::setHeader);

        if (isNonPlatformApi() || httpServletRequest.getMethod().equals(RequestMethod.OPTIONS.name())){
            // continue
        } else {
            if (platformHeader == null) {    // if platform header is not present
                httpServletResponse.setStatus(HttpStatus.BAD_REQUEST.value());

                responseObject.setResponseCode(ResponseCodesMap.getInstance().getResponseCodeByType(ResponseTypeEnum.BAD_REQUEST));
                responseObject.setDebugMessage("Platform Header is not present");

                httpServletResponse.getOutputStream().write(objectMapper.writeValueAsBytes(responseObject));;
                return;
            } else {
                List<String> platformValueList = Arrays.stream(Platform.values()).map(Platform::name).collect(Collectors.toList());

                if (!platformValueList.contains(Objects.requireNonNull(platformHeader.trim()))){
                    httpServletResponse.setStatus(HttpStatus.BAD_REQUEST.value());

                    responseObject.setResponseCode(ResponseCodesMap.getInstance().getResponseCodeByType(ResponseTypeEnum.BAD_REQUEST));
                    responseObject.setData("Platform Header value should be one of : "+Arrays.asList(Platform.values()));

                    httpServletResponse.getOutputStream().write(objectMapper.writeValueAsBytes(responseObject));;
                    return;
                }
            }

            if (!isNonAuthenticatedApi() && xAuthToken == null) {
                httpServletResponse.setStatus(HttpStatus.BAD_REQUEST.value());

                responseObject.setResponseCode(ResponseCodesMap.getInstance().getResponseCodeByType(ResponseTypeEnum.BAD_REQUEST));
                responseObject.setDebugMessage("Auth Token is not present");

                httpServletResponse.getOutputStream().write(objectMapper.writeValueAsBytes(responseObject));;
                return;
            }
        }

        // send BAD_REQUEST for CORS
        if (httpServletRequest.getMethod().equals(RequestMethod.OPTIONS.name())) {
            /*httpServletResponse.setStatus(HttpStatus.BAD_REQUEST.value());

            responseObject.setResponseCode(ResponseCodesMap.getInstance().getResponseCodeByType(ResponseTypeEnum.BAD_REQUEST));
            responseObject.setDebugMessage("CORS request must be handled by NGINX/Apache. Must be returned from web server itself");

            httpServletResponse.getOutputStream().write(objectMapper.writeValueAsBytes(responseObject));;*/
            // for CORS enablement
            headersMap.put("Access-Control-Allow-Origin", "*");
            headersMap.put("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE, PATCH");
            headersMap.put("Access-Control-Max-Age", "1728000");
            headersMap.put("Access-Control-Allow-Headers", Arrays.asList(HttpHeaders.CONTENT_TYPE, "A_T", "x-platform", "x-auth-token", RESPONSE_CODE_HEADER_KEY).stream().reduce((x,y) -> (x.toLowerCase() + "," + y.toLowerCase())).get());
            headersMap.put("Access-Control-Expose-Headers", Arrays.asList(HttpHeaders.CONTENT_TYPE, "A_T", "x-platform", "x-auth-token", RESPONSE_CODE_HEADER_KEY).stream().reduce((x,y) -> (x.toLowerCase() + "," + y.toLowerCase())).get());

            headersMap.forEach(((HttpServletResponse) response)::setHeader);
        } else {
            try {
                if (httpServletRequest.getRequestURI().equals(LOGIN_URI)) {
                    String body;

                    if (httpServletRequest instanceof ContentCachingRequestWrapper) {
                        body = RequestReader.getRequestBody((ContentCachingRequestWrapper) httpServletRequest);
                    } else {
                        body = RequestReader.getRequestBody(httpServletRequest);
                    }


                    httpServletResponse.setStatus(HttpStatus.OK.value());

                    AppUserDTO appUserDTO = objectMapper.readValue(body, AppUserDTO.class);


                    StringBuilder authToken = new StringBuilder();

                    Object appUserResponse =  userManagementService.authenticateUser(appUserDTO, authToken);

                    if (appUserResponse != null) {
                        httpServletResponse.addHeader(AUTH_TOKEN_HEADER_KEY, authToken.toString());
                        httpServletResponse.setStatus(HttpStatus.OK.value());

                        responseObject.setData(appUserResponse);
                        responseObject.setResponseCode(ResponseCodesMap.getInstance().getResponseCodeByType(ResponseTypeEnum.OK));
                        httpServletResponse.getOutputStream().write(objectMapper.writeValueAsBytes(responseObject));;
                        return;
                    }

                } else if (httpServletRequest.getRequestURI().equals(LOGOUT_URI)) {
                    String authToken = RequestReader.getRequestHeaderValue(httpServletRequest, AUTH_TOKEN_HEADER_KEY);

                    String[] removeAllSessions = httpServletRequest
                            .getParameterValues("removeAllSession");

                    Boolean logoutAllSessions;
                    if (removeAllSessions == null || removeAllSessions.length == 0) {
                        logoutAllSessions = false;
                    } else {
                        logoutAllSessions = Boolean.valueOf(removeAllSessions[0]);
                    }

                    Object respObject = userManagementService.logoutAppUser(authToken, logoutAllSessions);

                    responseObject.setData(respObject);
                    responseObject.setResponseCode(ResponseCodesMap.getInstance().getResponseCodeByType(ResponseTypeEnum.OK));

                    httpServletResponse.addHeader(HttpHeaders.CONTENT_TYPE, "application/json");
                    httpServletResponse.getOutputStream().write(objectMapper.writeValueAsBytes(responseObject));;
                    return;
                } else if (httpServletRequest.getRequestURI().equals(FORGOT_PASSWORD_URI)) {
                    // do nothing here, continue to filter chain
                } else if (httpServletRequest.getRequestURI().equals(USER_REGISTRATION_URI)) {
                    // do nothing here, continue to filter chain
                } else if (httpServletRequest.getRequestURI().equals(CONFIG_API_URI)) {
                    // do nothing here, continue to filter chain
                } else if (httpServletRequest.getRequestURI().equals(VERIFY_USER_EMAIL_URI)) {
                    String verificationToken = httpServletRequest.getParameter(PlatformConstants.VERIFICATION_TOKEN_NAME);

                    Object respObject = userManagementService.verifyRegisteredUser(verificationToken);

                    responseObject.setData(respObject);
                    responseObject.setResponseCode(ResponseCodesMap.getInstance().getResponseCodeByType(ResponseTypeEnum.OK));
                    httpServletResponse.addHeader(HttpHeaders.CONTENT_TYPE, "application/json");
                    httpServletResponse.getOutputStream().write(objectMapper.writeValueAsBytes(responseObject));

                    return;
                } else if (httpServletRequest.getRequestURI().equals(SEND_VERIFICATION_EMAIL_URI)) {
                    Object respObject = userManagementService.sendVerificationEmail(xAuthToken);

                    responseObject.setData(respObject);
                    responseObject.setResponseCode(ResponseCodesMap.getInstance().getResponseCodeByType(ResponseTypeEnum.OK));
                    httpServletResponse.addHeader(HttpHeaders.CONTENT_TYPE, "application/json");
                    httpServletResponse.getOutputStream().write(objectMapper.writeValueAsBytes(responseObject));;

                    LOGGER.debug("->->->-> Sent verification mail <-<-<-");
                    LOGGER.debug(objectMapper.writeValueAsString(responseObject));

                    return;
                } else if (httpServletRequest.getRequestURI().equals(FB_LOGIN_URI)) {
                    String body = RequestReader.getRequestBody(httpServletRequest);

                    FacebookLoginCO facebookLoginCO = objectMapper.readValue(body, FacebookLoginCO.class);

                    StringBuilder authToken = new StringBuilder();

                    Object respObject = authService.fbLogin(facebookLoginCO, authToken);

                    responseObject.setData(respObject);
                    responseObject.setResponseCode(ResponseCodesMap.getInstance().getResponseCodeByType(ResponseTypeEnum.OK));

                    httpServletResponse.addHeader(HttpHeaders.CONTENT_TYPE, "application/json");
                    httpServletResponse.addHeader(PlatformConstants.AUTH_TOKEN_HEADER_NAME, authToken.toString());

                    httpServletResponse.getOutputStream().write(objectMapper.writeValueAsBytes(responseObject));;

                    return;
                } else if (httpServletRequest.getRequestURI().equals(CONNECT_TO_FACEBOOK)) {
                    String body = RequestReader.getRequestBody(httpServletRequest);

                    FacebookLoginCO facebookLoginCO = objectMapper.readValue(body, FacebookLoginCO.class);

                    StringBuilder authToken = new StringBuilder();

                    Object respObject = authService.connectToFb(facebookLoginCO, xAuthToken, authToken);

                    responseObject.setData(respObject);
                    responseObject.setResponseCode(ResponseCodesMap.getInstance().getResponseCodeByType(ResponseTypeEnum.OK));

                    httpServletResponse.addHeader(HttpHeaders.CONTENT_TYPE, "application/json");
                    httpServletResponse.addHeader(PlatformConstants.AUTH_TOKEN_HEADER_NAME, authToken.toString());

                    httpServletResponse.getOutputStream().write(objectMapper.writeValueAsBytes(responseObject));;

                    return;
                } else if (httpServletRequest.getRequestURI().equals(FORCE_FB_LOGIN_URI)) {
                    String body = RequestReader.getRequestBody(httpServletRequest);

                    FacebookLoginCO facebookLoginCO = objectMapper.readValue(body, FacebookLoginCO.class);

                    StringBuilder authToken = new StringBuilder();

                    Object respObject = authService.forceLogin(facebookLoginCO, authToken);

                    responseObject.setData(respObject);
                    responseObject.setResponseCode(ResponseCodesMap.getInstance().getResponseCodeByType(ResponseTypeEnum.OK));

                    httpServletResponse.addHeader(HttpHeaders.CONTENT_TYPE, "application/json");
                    httpServletResponse.addHeader(PlatformConstants.AUTH_TOKEN_HEADER_NAME, authToken.toString());

                    httpServletResponse.getOutputStream().write(objectMapper.writeValueAsBytes(responseObject));;

                    return;
                } else if (isNonAuthenticatedApi()) {
                    // do nothing here, continue to filter chain
                } else {
                    if (xAuthToken == null || xAuthToken.equals("")) {
                        responseObject.setDebugMessage("Auth Token is not present");
                        responseObject.setResponseCode(ResponseCodesMap.getInstance().getResponseCodeByType(ResponseTypeEnum.UNAUTHORIZED));

                        httpServletResponse.setStatus(HttpStatus.FORBIDDEN.value());

                        httpServletResponse.getOutputStream().write(objectMapper.writeValueAsBytes(responseObject));;

                        return;
                    } else {
                        Object respObject = userManagementService.verifyAppUserToken(xAuthToken);

                        AppUserDTO requestUser = objectMapper.convertValue(respObject, AppUserDTO.class);

                        httpServletRequest.setAttribute("user", requestUser);
                    }
                }
            } catch (Exception e) {
                    if (e instanceof HttpStatusCodeException) {
                    HttpStatusCodeException hcee = (HttpStatusCodeException) e;
                    httpServletResponse.setStatus(hcee.getRawStatusCode());

                    if (hcee.getResponseBodyAsByteArray().length > 0) {
                        ResponseObject respObject = objectMapper.readValue(hcee.getResponseBodyAsString(), ResponseObject.class);

                        responseObject.setDebugMessage(respObject.getDebugMessage());
                        responseObject.setResponseCode(respObject.getResponseCode());

                        httpServletResponse.getOutputStream().write(objectMapper.writeValueAsBytes(responseObject));;
                    }
                } else if (e instanceof MyException) {
                    responseObject.setDebugMessage(e.getMessage());
                    responseObject.setResponseCode(((MyException) e).getCode());

                    httpServletResponse.setStatus(((MyException) e).getHttpStatusCode());

                    httpServletResponse.getOutputStream().write(objectMapper.writeValueAsBytes(responseObject));;
                }

                return;
            }

            // continue with filter chain
            chain.doFilter(httpServletRequest, response);
        }
  }

angular应用程序代码是控制器上的一个简单get请求:

return this.httpClient.get(this.detailsUrlService.getVideoURL() + videoId, { headers }).pipe((res: any) => {
        return res;
    },
        (error) => {
            return error;
        });

删除exceptionhandler代码并用Jetty替换tomcat之后(由于https://github.com/spring-projects/spring-boot/issues/13236

我终于找到了

  org.eclipse.jetty.io.RuntimeIOException: org.eclipse.jetty.io.EofException: Closed
    at org.eclipse.jetty.server.ResponseWriter.isOpen(ResponseWriter.java:133) ~[jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.server.ResponseWriter.write(ResponseWriter.java:230) ~[jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.server.ResponseWriter.write(ResponseWriter.java:248) ~[jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.server.handler.ErrorHandler.writeErrorPageHead(ErrorHandler.java:285) ~[jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.server.handler.ErrorHandler.writeErrorPage(ErrorHandler.java:275) ~[jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.server.handler.ErrorHandler.handleErrorPage(ErrorHandler.java:264) ~[jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.server.handler.ErrorHandler.generateAcceptableResponse(ErrorHandler.java:254) ~[jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.server.handler.ErrorHandler.generateAcceptableResponse(ErrorHandler.java:172) ~[jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.server.handler.ErrorHandler.doError(ErrorHandler.java:142) ~[jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.server.handler.ErrorHandler.handle(ErrorHandler.java:78) ~[jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.springframework.boot.web.embedded.jetty.JettyEmbeddedErrorHandler.handle(JettyEmbeddedErrorHandler.java:55) ~[spring-boot-2.0.4.RELEASE.jar:2.0.4.RELEASE]
    at org.eclipse.jetty.server.Response.sendError(Response.java:655) ~[jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.server.Response.sendError(Response.java:590) ~[jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    at javax.servlet.http.HttpServletResponseWrapper.sendError(HttpServletResponseWrapper.java:167) ~[javax.servlet-api-3.1.0.jar:3.1.0]
    at org.springframework.web.util.ContentCachingResponseWrapper.sendError(ContentCachingResponseWrapper.java:86) ~[spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.handleHttpMessageNotReadable(DefaultHandlerExceptionResolver.java:426) ~[spring-webmvc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.doResolveException(DefaultHandlerExceptionResolver.java:204) [spring-webmvc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:139) [spring-webmvc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.servlet.handler.HandlerExceptionResolverComposite.resolveException(HandlerExceptionResolverComposite.java:78) [spring-webmvc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1255) [spring-webmvc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1062) [spring-webmvc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1008) [spring-webmvc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) [spring-webmvc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974) [spring-webmvc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877) [spring-webmvc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api-3.1.0.jar:3.1.0]
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851) [spring-webmvc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api-3.1.0.jar:3.1.0]
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865) [jetty-servlet-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655) [jetty-servlet-9.4.11.v20180605.jar:9.4.11.v20180605]
    at com.fe.api.routing.config.HTTPRoutesFilter.doFilter(HTTPRoutesFilter.java:384) [classes/:?]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) [jetty-servlet-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) [spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) [jetty-servlet-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109) [spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) [jetty-servlet-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93) [spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) [jetty-servlet-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) [jetty-servlet-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [jetty-security-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1317) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
    org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1219) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
   ...
    Caused by: org.eclipse.jetty.io.EofException: Closed

共 (0) 个答案