【发布时间】:2013-01-11 19:37:00
【问题描述】:
我的技术堆栈是 Tomcat (servlet 3.0)、Jersey for JAX-RS、Spring 和 Hibernate。当出现意外错误时,例如 Hibernate 中的某些数据转换错误,我不希望客户端看到我的堆栈跟踪,以了解 Tomcat 默认尝试打印的那些异常。不过,我想记录这些异常,以便找出问题所在并进行修复。
我的第一次尝试是使用来自 JAX-RS 的 ExceptionMapper,并且天真地认为这可以解决我的问题。但后来我注意到 Jersey 抛出了它自己的异常,例如未映射的 url 是 com.sun.jersey.api.NotFoundExceptions。这会导致记录我不想要的 404 异常。更糟糕的是,客户端不再得到 404,而是状态码 500。
我可以为球衣抛出的异常创建异常映射器,但我可能会错过一些东西。有这样的最佳做法吗?
【问题讨论】:
标签: java spring servlets jersey jax-rs