我使用Spring MVC编写一些Spring REST服务。我要求将任何500(内部服务器错误)作为带有Http Status = 500的json和带有json字符串的Http Body [“内部服务器错误”]发送回打包。 为此,我正在扩展OncePerRequestFilter并检查Http Response的状态。然后我用所需的json响应构造主体。 虽然这是有用的,但它很混乱。是否有更好的设计原则或spring / json类,我可以用Spring配置它实现相同的目的?
-Gotz
答案 0 :(得分:1)
我相信你可以使用以下结构:
1)将HTTP 500错误映射到某个视图:
<error-page>
<error-code>500</error-code>
<location>/errorView.htm</location>
</error-page>
2)在你的Controller创建View中,它将返回你需要的任何Json信息。
@RequestMapping(value="/errorView.htm",method = RequestMethod.GET)
public String handleGet(HttpServletRequest req) {
res.setStatus(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
res.setContentType("application/json");
res.getWriter().print("{\Error"\:\"Internal Server Error\"}");
}
希望它有所帮助。