1

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

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

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

任何帮助都会像往常一样不胜感激!

4

1 回答 1

2

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

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

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

于 2013-08-15T11:31:47.747 回答