Jersey & Spring Boot 将非正常响应状态转换为 404



我使用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>

你知道这是怎么回事吗?

Jersey期望响应包含一个实体。如果我返回一个空映射和我的错误代码,错误被传递到浏览器与一个空JSON对象。

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

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

最新更新