首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Spring Boot REST服务异常处理

Spring Boot REST服务异常处理
EN

Stack Overflow用户
提问于 2015-03-06 23:46:29
回答 10查看 303.5K关注 0票数 193

我正在尝试设置一个大规模的REST服务服务器。我们使用的是Spring Boot 1.2.1、Spring 4.1.5和Java 8。我们的控制器实现了@RestController和标准的@RequestMapping注释。

我的问题是Spring Boot为/error的控制器异常设置了一个缺省重定向。从文档中:

servlet Spring Boot默认提供了一个/error映射,它以合理的方式处理所有错误,并在servlet容器中注册为“全局”错误页面。

多年来一直使用Node.js编写REST应用程序,这对我来说一点也不明智。服务端点生成的任何异常都应在响应中返回。我不明白为什么你要将重定向发送到最有可能是Angular或JQuery SPA的消费者,他们只是在寻找答案,而不能或不会对重定向采取任何操作。

我想要做的是设置一个全局错误处理程序,它可以接受任何异常--无论是从请求映射方法故意抛出的,还是由Spring自动生成的(如果没有找到请求路径签名的处理程序方法,则为404),并向客户端返回一个标准的格式化错误响应(400、500、503、404),而不需要任何MVC重定向。具体地说,我们将获取错误,使用UUID将其记录到NoSQL中,然后使用JSON中的日志条目的UUID将正确的HTTP错误代码返回给客户端。

文档对如何做到这一点一直含糊其辞。在我看来,您要么必须创建自己的ErrorController实现,要么必须以某种方式使用ControllerAdvice,但是我所见过的所有示例仍然包括将响应转发到某种错误映射,这没有什么帮助。其他示例建议您必须列出要处理的每个异常类型,而不是只列出"Throwable“并获取所有内容。

谁能告诉我我错过了什么,或者给我指明了正确的方向,如何做到这一点,而不是建议链上的Node.js将更容易处理?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28902374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档