Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何抑制Jersey自动抛出的Jersey异常?_Java_Rest_Jersey_Jersey Client_Jersey 1.0 - Fatal编程技术网

Java 如何抑制Jersey自动抛出的Jersey异常?

Java 如何抑制Jersey自动抛出的Jersey异常?,java,rest,jersey,jersey-client,jersey-1.0,Java,Rest,Jersey,Jersey Client,Jersey 1.0,我在JAVA中使用Jersey 1.14作为REST。若资源的帖子正文中有任何错误,Jersey将抛出一个异常,该异常向客户机提到我的内部类。 当错误从我的应用程序传递出去时,我仍然希望给他们错误,但是抑制Jersey抛出的错误(对于甚至没有到达我的应用程序的请求,因为Jersey识别异常并抛出它)。 我搜索了任何标志来实现这一点,但没有找到任何东西。有办法做到这一点吗 编辑: 重新表述问题:为jersey中的无效输入禁用/抑制错误堆栈跟踪 更新: 我尝试使用ExceptionMapper,捕获

我在JAVA中使用Jersey 1.14作为REST。若资源的帖子正文中有任何错误,Jersey将抛出一个异常,该异常向客户机提到我的内部类。 当错误从我的应用程序传递出去时,我仍然希望给他们错误,但是抑制Jersey抛出的错误(对于甚至没有到达我的应用程序的请求,因为Jersey识别异常并抛出它)。 我搜索了任何标志来实现这一点,但没有找到任何东西。有办法做到这一点吗

编辑: 重新表述问题:为jersey中的无效输入禁用/抑制错误堆栈跟踪

更新:
我尝试使用ExceptionMapper,捕获java.lang.Exception。它捕获excpetion(如缺少内容类型时),但在对象转换出错时无法捕获异常。

Jersey将抛出代码中未处理的异常。因此,您需要将Web服务代码包装在
try/catch
中。并在中捕获
异常
类,以确保在web服务类中优雅地处理它。

我相信这可以通过服务器配置实现,因为Jersey似乎没有任何相关功能

您使用的是哪个servlet容器


(编辑)用于Tomcat搜索“Tomcat抑制异常堆栈跟踪”。大多数答案都会要求您在
web.xml
中放置
错误页面
元素:

<error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/your-custom-error-page.jsp</location>
</error-page>

java.lang.Throwable
/your-custom-error-page.jsp

当然,还要实现一个不包含堆栈跟踪的
自定义错误页面.jsp
。它还可以检查应用程序环境并仅在开发中显示堆栈跟踪。

您可以使用ExceptionMapper。这里介绍一下它的功能。

如果您正在解析xml,您可以编写一个自定义ContextResolver来捕获异常。在json的情况下,您可能需要messagebodyreader/writer

我没有机会抛出异常,因为Jersey将引发异常,因为它无法从输入值创建输入对象的实例。有没有办法截获Jersey异常?然而,有一个ExceptionMapper接口也截获了该方法抛出的异常。SpringServlet是框架的一部分,它可以在任何J(2)EE servlet容器上运行。我指的是服务器(Tomcat可能是JBoss、Websphere等等)。哦,我在使用Tomcat。我试过这个。但它在缺少内容类型的情况下有效,但在对象转换中出现错误的情况下无效。它仍然抛出一个错误:无法识别的字段“xyz”(以及在此之后的类堆栈跟踪)我找到了异常。它正在抛出JsonMappingException。但现在的问题是,已经有一个ExceptionMapper类接受JsonMappingException,在注册映射程序时,它有时注册我的映射程序,有时注册库的映射程序