【发布时间】:2018-05-13 08:04:01
【问题描述】:
我有一个使用微服务架构开发的应用程序。每个微服务都是一个 spring-boot 应用程序,通过 FeignClient 接口与其他应用程序进行通信。
假设 A,一个调用微服务 B 的微服务 (RestAPI)。在正常情况下,B 回复一个对象 X,即 A 提供给客户端的 JSON 响应。
但是,如果 B 抛出异常,我会向客户端获取一个中文框异常,如下所示:
{
"timestamp": 1511965051071,
"status": 500,
"error": "Internal Server Error",
"exception": "Exception",
"message": { "\"timestamp\":1511965051052,\"status\":422,\"error\":\"Unprocessable Entity\",\"exception\":\"java.lang.MyException\",\"message\":\"Error message from B\",\"path\":\"PATH-OF-B-SERVICE\"}",
"path": "PATH-OF-A-SERVICE"
}
换句话说,MyException(状态 422)“嵌入”在 A Exception(状态 500)中。
我想用内部JSON回复客户端,即:
{
"timestamp": 1511965051052,
"status": 422,
"error": "Unprocessable Entity",
"exception": "java.lang.MyException",
"message": "ErrormessagefromB",
"path": "PATH-OF-B-SERVICE"
}
我该怎么做?
【问题讨论】:
标签: java exception-handling microservices spring-cloud-feign