我在JAVA中使用Jersey 1.14进行REST。如果资源的POST正文中有任何错误,Jersey会抛出异常,这会将我的内部类提到给客户端。当错误从我的应用程序传递过来时,我仍然想给他们错误,但抑制Jersey抛出的错误(对于甚至没有到达我的应用程序的请求,因为Jersey识别异常并抛出它)。我搜索了任何标志来实现这一点,但没有找到任何东西。有没有办法做到这一点?
编辑:重新表述问题:静音/抑制jersey中无效输入的错误堆栈跟踪
更新:我尝试使用ExceptionMapper,捕获java.lang.Exception。当缺少Content-Type时,它捕获excpetion,但在对象转换中出现错误时,它无法捕获异常。
发布于 2013-09-11 16:44:06
您可以使用ExceptionMapper。这是关于它的an old article,就可以了。
发布于 2013-09-11 15:10:28
Jersey将抛出在您的代码中未处理的异常。因此,您需要将webservice代码包装在try/catch中。并捕获Exception类,以确保您在web服务类中优雅地处理它。
发布于 2013-09-11 15:22:17
我相信这可以通过服务器配置来实现,因为Jersey似乎没有任何相关的configuration option。
您使用的是哪个servlet容器?
(编辑)对于Tomcat搜索"tomcat抑制异常堆栈跟踪“。大多数答案都会让您在web.xml中放置一个error-page元素
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/your-custom-error-page.jsp</location>
</error-page>当然,还要实现一个不包含堆栈跟踪的your-custom-error-page.jsp。它还可以检查应用程序环境,并仅在开发过程中显示堆栈跟踪。
https://stackoverflow.com/questions/18734718
复制相似问题