泽西岛& Spring Boot将非正常响应状态转换为404

时间:2015-08-03 05:59:34

标签: jersey spring-boot

我使用Jersey和Spring Boot 1.2.5。我有一个Jersey控制器(注释为@Produces(MediaType.APPLICATION_JSON)),只要我返回一个ok响应,如

,它就能正常工作并返回JSON
return Response.ok(dto).build();

但每当我尝试返回自定义错误状态时,例如

return Response.status(Status.CONFLICT).build();

它变成了404,例如

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>Error 404 Not Found</title>
</head>
<body>
    <h2>HTTP ERROR 404</h2>
    <p>Problem accessing /error. Reason:

        <pre>    Not Found</pre>
    </p>
    <hr>
        <i>
            <small>Powered by Jetty://</small>
        </i>
        <hr/>
    </body>
</html>

有什么想法在这里发生了什么?

1 个答案:

答案 0 :(得分:1)

泽西岛希望响应包含一个实体。如果我将空映射与错误代码一起返回,则错误将通过空JSON对象传递到浏览器。

return Response.status(Status.CONFLICT).entity(new HashMap<>()).build();

如果您有更好的解决方案,请随时发表评论。