2012-12-27 68 views
2

如何拦截我的Jersey REST应用程序中的解析错误?我已经注册了一个ExceptionMapper<Exception>但这些不会被抓到。在Jersey中处理JSON解析错误

它返回以下的客户

Unexpected character ('y' (code 121)): expected a valid value (number, 
    String, array, object, 'true', 'false' or 'null') 
    at [Source: [email protected]; 
    line: 1, column: 92] 

但我想给我自己的反应。

+1

你是如何定义和注册你的ExceptionMapper的?你确定它已经注册并适用于抛出异常吗? – Charlie

+0

是的,我敢肯定,因为它捕获了其他例外情况。它应该捕获来自Exception的任何异常。我也试图用Throwable来确保。 –

+1

您可以随时捕获此异常并返回适当的响应。 – Srinivas

回答

0

但是我猜你的ExceptionMapper是注册的,它并没有被应用到其他包,你调用泽西库代码来解析JSON。

将Jersey的所有调用环绕在Try {} catch()块中进行解析,其中catch应该返回错误代码并且不会进一步处理。

或者,它看起来像Tomcat可能会在它甚至到达您的应用程序之前抛出错误。可能是配置方式或客户端通信方式的问题?这个纯文本HTTP?

+1

我不称呼球衣;球衣叫我的代码。而且我不使用tomcat。 –