我想知道是否有人可以帮助解决我遇到的问题......
在那一刻,我正在Jetty 8.1.10v20130312容器中使用Jersey 1.17运行休息服务。如果我做错了,比如说发送一个内容类型为“abcdefg”的请求,我得到一个响应,但是包含了栈跟踪。我可以从日志中看到异常是包含在WebApplicationException中的IllegalArgumentException,但是我的WebApplicationException映射器没有处理它 - 我猜测异常是在Jetty中的某个地方抛出而不是我的资源类?
有没有办法先发制人或抓住错误?还是一种防止堆栈跟踪被包含的方法?
任何帮助都会像往常一样受到赞赏!
答案 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),它以自己的方式处理它。