Java,Jersey 1.17& Jetty:不要回复堆栈跟踪

时间:2013-08-14 15:25:02

标签: java jersey jetty

我想知道是否有人可以帮助解决我遇到的问题......

在那一刻,我正在Jetty 8.1.10v20130312容器中使用Jersey 1.17运行休息服务。如果我做错了,比如说发送一个内容类型为“abcdefg”的请求,我得到一个响应,但是包含了栈跟踪。我可以从日志中看到异常是包含在WebApplicationException中的IllegalArgumentException,但是我的WebApplicationException映射器没有处理它 - 我猜测异常是在Jetty中的某个地方抛出而不是我的资源类?

有没有办法先发制人或抓住错误?还是一种防止堆栈跟踪被包含的方法?

任何帮助都会像往常一样受到赞赏!

1 个答案:

答案 0 :(得分:1)

您可以定义自己的页面来处理web.xml中的错误(因为这似乎是Jetty而不是Jersey的问题),即HTTP 500它将是:

<error-page>  
    <error-code>500</error-code>  
    <location>/WEB-INF/error.jsp</location>  
</error-page> 

注意:我不确定在这种情况下,泽西是否将IllegalArgumentException引起的ParsingException(错误的响应媒体类型)包装到{{1} }。 WebApplicationException更有可能传递给底层容器(在本例中为Jetty),它以自己的方式处理它。