1
我用从this页#3方法时,在生产模式,但是我的错误页面返回200 OK HTTP状态代码,自定义应用程序异常页,而我希望它返回500内部服务器错误(因为它在开发环境中)。自定义应用程序异常HTTP状态代码
我不知道如何改变状态代码。有任何想法吗?
我用从this页#3方法时,在生产模式,但是我的错误页面返回200 OK HTTP状态代码,自定义应用程序异常页,而我希望它返回500内部服务器错误(因为它在开发环境中)。自定义应用程序异常HTTP状态代码
我不知道如何改变状态代码。有任何想法吗?
在handleRequestException实现将使用默认的DefaultRequestExceptionHandler的,你可以看到,响应状态设置为500:
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
你必须做你的代码非常类似的东西(未测试):
public RequestExceptionHandler decorateRequestExceptionHandler(final Logger logger, final ResponseRenderer renderer,
final ComponentSource componentSource, final Response response,
@Symbol(SymbolConstants.PRODUCTION_MODE) boolean productionMode, Object service) {
if (!productionMode) return null;
return new RequestExceptionHandler() {
public void handleRequestException(Throwable exception) throws IOException {
logger.error("Unexpected runtime exception: " + exception.getMessage(), exception);
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
ExceptionReporter index = (ExceptionReporter) componentSource.getPage("Index");
index.reportException(exception);
renderer.renderPageMarkupResponse("Index");
}
};
}