获取与预期不同的 http 状态代码
Getting different http status code than expected
我正在使用 Jersey 控制器实现 REST API。
在某些情况下,我想 return 错误状态代码,如 400、501 等,这些代码由如下语句生成:
throw new WebApplicationException("Error", 501);
当我在本地部署应用程序时,一切正常。但是,当我在 Docker 图像中部署它时,对于控制器抛出的任何错误,客户端都会收到 404 状态代码。
我在抛出异常之前添加了跟踪以确保代码已执行。确实如此。
似乎在某些代码层,与应用程序不同,状态代码从 400 或 501 或 502 转换为 404,这就是客户端得到的。
有什么线索吗?
错误被映射到 Docker 的 Tomcat 的 web.xml 文件中。因此,部署在那里的应用继承了这些映射。
我正在使用 Jersey 控制器实现 REST API。
在某些情况下,我想 return 错误状态代码,如 400、501 等,这些代码由如下语句生成:
throw new WebApplicationException("Error", 501);
当我在本地部署应用程序时,一切正常。但是,当我在 Docker 图像中部署它时,对于控制器抛出的任何错误,客户端都会收到 404 状态代码。
我在抛出异常之前添加了跟踪以确保代码已执行。确实如此。
似乎在某些代码层,与应用程序不同,状态代码从 400 或 501 或 502 转换为 404,这就是客户端得到的。
有什么线索吗?
错误被映射到 Docker 的 Tomcat 的 web.xml 文件中。因此,部署在那里的应用继承了这些映射。