我使用Jersey与Spring Boot 1.2.5。我有一个Jersey控制器(用@Produces(MediaType.APPLICATION_JSON)
注释),只要我返回一个ok响应(如
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();
如果你有更好的解决方案,请随时评论。