1

我正在使用 Spring MVC 编写一些 Spring REST 服务。我要求将任何 500(内部服务器错误)打包为带有 Http Status = 500 的 json 和带有 json 字符串 [“Internal Server Error”] 的 Http Body。为此,我正在扩展 OncePerRequestFilter 并检查 Http Response 的状态。然后,我正在使用所需的 json 响应构建主体。尽管这达到了目的,但它很混乱。是否有更好的设计原则或 spring/json 类可以使用 Spring 配置以达到相同的目的?

-戈茨

4

1 回答 1

1

我相信您可以使用以下结构:

1) 将 HTTP 500 错误映射到某个视图:

 <error-page>
        <error-code>500</error-code>
        <location>/errorView.htm</location>
    </error-page>

2)在您的控制器中创建视图,它将返回您需要的任何 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\"}");
}

希望能帮助到你。

于 2012-05-02T00:03:22.813 回答