Spring控制器和拦截器之间是什么
Spring what is between Controller and Interceptor
我有一个正在做某事的控制器,一切似乎都很好,它记录了成功,然后它就这样做了
return new ResponseEntity<>(resp, HttpStatus.OK);
似乎应该发送 200 OK。
好吧,我还有一个带有 "afterCompletion" 的 HandlerInterceptorAdapter,用于记录状态:
logger.debug("Response status: {}, URI: {}", response.getStatus(), request.getRequestURI());
这显示控制器成功的 500。
在标准输出日志中我看到一个错误
2018-01-12 12:33:59.035 ERROR 18952 --- [pr-8080-exec-14] o.s.boot.web.support.ErrorPageFilter : Cannot forward to error page for request [/ws/path] as the response has already been committed.
As a result, the response may have the wrong status code. If your application is running on WebSphere Application Server you may be able to resolve this problem by setting com.ibm.ws.webcontainer.invokeFlushAfterService to false
和
org.apache.catalina.connector.ClientAbortException: java.io.IOException: APR error: -32
我找不到任何关于 APR 错误的文档,我也不知道为什么状态代码会出错。我正在使用 tomcat 8.5.
所以。 APR -32 是一个 "Client Abort" 错误。客户端等待超时。看起来正在发生的事情是客户提出了一个请求,并在队列中等待了几秒钟。它有一个很短的硬超时限制。客户端在服务器收到请求之前超时。然后服务器接收到请求并且一切正常,但是当试图写回客户端时,它发现套接字已关闭。所以它设置了 500 并抛出了那个异常。
我有一个正在做某事的控制器,一切似乎都很好,它记录了成功,然后它就这样做了
return new ResponseEntity<>(resp, HttpStatus.OK);
似乎应该发送 200 OK。
好吧,我还有一个带有 "afterCompletion" 的 HandlerInterceptorAdapter,用于记录状态:
logger.debug("Response status: {}, URI: {}", response.getStatus(), request.getRequestURI());
这显示控制器成功的 500。
在标准输出日志中我看到一个错误
2018-01-12 12:33:59.035 ERROR 18952 --- [pr-8080-exec-14] o.s.boot.web.support.ErrorPageFilter : Cannot forward to error page for request [/ws/path] as the response has already been committed.
As a result, the response may have the wrong status code. If your application is running on WebSphere Application Server you may be able to resolve this problem by setting com.ibm.ws.webcontainer.invokeFlushAfterService to false
和
org.apache.catalina.connector.ClientAbortException: java.io.IOException: APR error: -32
我找不到任何关于 APR 错误的文档,我也不知道为什么状态代码会出错。我正在使用 tomcat 8.5.
所以。 APR -32 是一个 "Client Abort" 错误。客户端等待超时。看起来正在发生的事情是客户提出了一个请求,并在队列中等待了几秒钟。它有一个很短的硬超时限制。客户端在服务器收到请求之前超时。然后服务器接收到请求并且一切正常,但是当试图写回客户端时,它发现套接字已关闭。所以它设置了 500 并抛出了那个异常。