@Controller
public class AppErrorController implements ErrorController {
@Value("${server.servlet.context-path}")
private String entryPath;
@RequestMapping("/error")
public void handleError(HttpServletRequest request, HttpServletResponse response) {
Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code");
System.out.println(statusCode);
jsonNotice(response, statusCode);
}
private void jsonNotice(HttpServletResponse response, Integer statusCode) {
PrintWriter writer = null;
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json; charset=utf-8");
try {
response.setHeader("sessionstatus", "timeout");
Result<String> result = new Result<>();
result.setMessage("HTTP_CODE:" + statusCode.toString());
result.setCode("REQUEST_ERROR");
writer = response.getWriter();
writer.print(JSONObject.toJSON(result));
} catch (IOException e) {
} finally {
if (writer != null) {
writer.close();
}
}
}
@Override
public String getErrorPath() {
return "/error";
}
}