【问题标题】:Handle JSON parse error in Jersey处理 Jersey 中的 JSON 解析错误
【发布时间】:2012-12-13 01:13:53
【问题描述】:

如何在我的 Jersey REST 应用程序中截获解析错误?我已经注册了ExceptionMapper<Exception>,但没有被抓到。

它向客户端返回以下内容

Unexpected character ('y' (code 121)): expected a valid value (number,
  String, array, object, 'true', 'false' or 'null')
  at [Source: org.apache.catalina.connector.CoyoteInputStream@161d5f3;
  line: 1, column: 92]

但我想发送自己的响应。

【问题讨论】:

  • 你是如何定义和注册你的 ExceptionMapper 的?您确定它已注册并适用于抛出的异常吗?
  • 是的,我敢肯定,因为它捕获了其他异常。它应该捕获从 Exception 派生的任何异常。为了确定,我还尝试了 Throwable。
  • 您可以随时捕获此异常并返回适当的响应。
  • 这是个问题。我如何捕捉到这个异常?在哪里?
  • 是的,我的异常映射器有效,但不适用于那些...

标签: java json exception-handling jersey


【解决方案1】:

我猜你的 ExceptionMapper 已经注册了,它并没有被应用到其他包,你正在调用 Jersey 库代码来解析 JSON。

在 Try{ }catch() 块中包含对 Jersey 的所有解析调用,其中 catch 应返回错误代码而不是进一步处理。

另外,看起来 Tomcat 可能在错误到达您的应用程序之前就抛出了错误。也许是配置方式或客户端通信方式的问题?这是明文HTTP吗?

【讨论】:

  • 我不叫球衣;球衣调用我的代码。而且我没有使用tomcat。
猜你喜欢
  • 2012-06-11
  • 1970-01-01
  • 1970-01-01
  • 2015-03-12
  • 1970-01-01
  • 1970-01-01
  • 2011-03-11
  • 2017-06-10
  • 2019-04-02
相关资源
最近更新 更多