我正在运行tomcat 8.5.6。当我的Jersey休息服务返回400或409(我调试代码以验证这种情况发生)时,Tomcat返回404响应(在Tomcat localhost访问日志和浏览器中验证)。
当我更改同一服务以在相同情况下返回500时,500将被返回到浏览器。
有关为什么Tomcat吸收所有400级响应并将其转换为404以及如何让Tomcat返回所需响应代码的任何想法?感谢。
答案 0 :(得分:0)
想出来。我在响应中添加了一些正文内容,并且正确的代码开始流回客户端。
} catch (UserAlreadyExistsException e) {
LOG.error(e, "user already exists");
response = Response.status(Response.Status.CONFLICT).entity("user already exists").build();
} catch (JSONException e) {
LOG.error(e, "bad request");
response = Response.status(Response.Status.BAD_REQUEST).entity(e.getMessage()).build();
} catch (Exception e) {
LOG.error(e, "server error");
response = Response.serverError().entity(e.getMessage()).build();
}
return response;
答案 1 :(得分:0)
Tomcat新版本在http标头中进行更严格的验证,您可以在标题参数中添加一个“主机”或缺少“主机”。我有同样的问题,我删除了重复的