如何从泽西检索映射的异常?

时间:2017-03-08 09:55:15

标签: java jersey jax-rs

我在服务器端使用了ExceptionMapper,将自定义异常放在了Response的主体中。如何在客户端检索原始异常,并将其抛给调用者?

1 个答案:

答案 0 :(得分:1)

您可以序列化异常并将其作为响应的一部分包含在内:

byte[]

然后在客户端你应该做相反的事情:

  • 解组(可能是JSON)响应
  • 将base64编码的异常解码为ByteArrayInputStream
  • 反序列化异常
    • 创建ObjectInputStream
    • 创建readObject()
    • 只是byte[]例外
    • 在客户端做任何你想做的事

PS:这可以在没有任何缓冲的情况下实现(即没有StreamingOutput s) - >只需使用.entity()作为ByteArrayOutputStream并写入提供的输出流而不是{{1}}。这同样适用于客户端的反序列化。