spring引导在errorcontroller中获取json错误表示

6kkfgxo0  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(304)

spring boot以json格式提供如下错误:

  1. {
  2. "timestamp": "2019-01-17T16:12:45.977+0000",
  3. "status": 500,
  4. "error": "Internal Server Error",
  5. "message": "Error processing the request!",
  6. "path": "/endpoint"
  7. }

我是否可以在数据库中获取此错误 ErrorController 然后继续?

  1. @Controller
  2. public class CustomErrorController implements ErrorController {
  3. @RequestMapping("/error")
  4. public String handleError(Model model) {
  5. // how to get json-error here?
  6. model.addAttribute("resultJson", ?);
  7. return "error";
  8. }
  9. }

它在房间里吗 HttpServletResponse 或者别的什么?

qncylg1j

qncylg1j1#

默认值 error 属性是从 WebRequest 使用 ErrorAttributes 豆子。
spring已经提供了这个bean的默认实现 DefaultErrorAttributes 豆子。
您可以让容器像任何普通bean一样将此bean注入到自定义/错误控制器实现中,以便使用它:

  1. @Controller
  2. @RequestMapping({"/error"})
  3. public class CustomErrorController extends AbstractErrorController {
  4. public CustomErrorController(final ErrorAttributes errorAttributes) {
  5. super(errorAttributes, Collections.emptyList());
  6. }
  7. @RequestMapping
  8. public String handleError(Model model, HttpServletRequest request) {
  9. Map<String, Object> errorAttributes = this.getErrorAttributes(request, false); // retrieve the default error attributes as a key/value map (timestamp, status, error...)
  10. // ...
  11. }
  12. @Override
  13. public String getErrorPath() {
  14. return "/error";
  15. }
  16. }
展开查看全部

相关问题