我有一个GlobalExceptionHandler捕获异常并返回HTTP错误代码的。
@ControllerAdvice
@Component
public class GlobalExceptionHandler {
private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
...
// 404 - Not Found
@ExceptionHandler(NoHandlerFoundException.class)
@ResponseStatus(HttpStatus.NOT_FOUND)
public void requestHandlingNoHandlerFound(HttpServletRequest request, Exception exception) {
logger.error("Error Not Found (404): " + exception.getMessage());
}
...
}
Run Code Online (Sandbox Code Playgroud)
这可以正常工作,并显示404。但是HTTP响应看起来像这样:
HTTP/1.1 404
X-Application-Context: application:8080
Content-Length: 0
Date: Wed, 03 Aug 2016 14:36:52 GMT
Run Code Online (Sandbox Code Playgroud)
但应返回:
HTTP/1.1 404 Not Found
X-Application-Context: application:8080
Content-Length: 0
Date: Wed, 03 Aug 2016 14:36:52 GMT
Run Code Online (Sandbox Code Playgroud)
该Not Found部分丢失。其他错误也一样。例如500 - Internal …