【发布时间】:2016-02-21 20:52:06
【问题描述】:
一些重载的调用请求方法,如:SyncInvoker的get()和post(Entity<?> entity)(还有其他)返回一个Response对象,而不是解组的内容。
我注意到在 get() 的情况下,没有记录在案的 ResponseProcessingException,而其他方法,例如所有 3 个重载的 post 方法,可能会抛出 ResponseProcessingException。
我知道ResponseProcessingException 是一个RuntimeException,它继承自ProcessingException,但我仍然会将其解释为get() 方法不会抛出ResponseProcessingException。
这是正确的吗? ClientResponseFilter 呢?为什么该行为与其他调用请求方法(put、post、..)的行为不同?
此外,抛出 ResponseProcessingException 的方法的 Javadoc 说:
如果接收到的 HTTP 响应处理失败(例如在过滤器中) 或在将响应实体数据转换为 特定的 Java 类型)。
部分:
或在将响应实体数据转换为 特定的 Java 类型
这里似乎是错误的,因为 readEntity 方法不应该被调用:
https://jersey.java.net/documentation/latest/filters-and-interceptors.html#d0e9915
这是复制和粘贴文档错误吗?
不过,我想过滤器是一个有效的案例。
【问题讨论】:
-
@BalcusC 这是一个 Java 问题,JAX-RS 是 Java EE 的一部分,而 JAX-RS 客户端是 JAVA EE 7 的一部分。请参阅 Javadoc 的链接。请不要删除这些标签。
标签: java jakarta-ee jersey jax-rs java-ee-7