忽略网页.xml带有泽西岛异常映射器的错误页面
@Provider
public class JerseyExceptionMapper implements ExceptionMapper<JerseyException> {
@Override
public Response toResponse(JerseyException jerseyException) {
return Response.status(jerseyException.getErrorCode()).
entity(jerseyException.getJsonResponseObj()).
type(MediaType.APPLICATION_JSON).
build();
}
}
当您在 中使用中的组件时,上面的代码会产生不需要的结果。例如,如果 my 设置为 400,而我的组件将 400 定义为 400,则 Web 服务器会将请求重定向到 中定义的位置。<error-page>
web.xml
Response.status
error-page
<error-code>
web.xml
这显然不是我想要的 REST 请求。我在StackOverflow上读到另一篇文章,说请求被转移到的原因是因为设置了。那篇帖子说,如果你设置了,将被忽略。error-page
HttpServletResponse.sendError(400)
HttpServletResponse.setStatus(400)
error-page
如果这是真的,我不明白它有什么帮助,因为我没有实现泽西岛代码。我看到的选项是调查 Response 类源代码,并可能重新实现状态方法或其他 Jersey 代码。这里有一个简单的选择还是我错过了什么?
从本质上讲,我的问题是:鉴于我正在使用泽西岛进行REST,并且我在我的中使用错误页面,我如何使用上述代码而忽略泽西岛代码?导致 HTTP 错误的任何其他代码都应转到 .或者是否有另一种不涉及但工作与我想要的相同解决方案?web.xml
error-page
error-page
error-page