我写一个客户消耗RestService和我要读的实体出响应的和我完全混淆该方法出了两(getEntity
VS readEntity
应使用)。
我必须找回实体每当我得到一个WebApplicationException。
所以,我的代码或多或少的模样。
catch(WebApplicationException ex) {
// Do something with ex.getResponse
}
从,不管我已经测试,
ex.getResponse().hasEntity() ---> true
ex.getResponse().getEntity() == null ---> true
我不知道它是如何工作的,但如果第一个为真,那么如何第二个语句可能是真的。
出人意料的是,readEntity工作对我很好,我能够从响应中读取实体的。
但是,通过readEntity阅读实体后,
此调用提供虚假。
ex.getResponse().getEntity() == null --> false
有人可以帮助我了解什么是真正的幕后发生的事情?
这种行为被记录了在API:
public abstract <T> T readEntity(Class<T> entityType)
读取消息实体输入流作为使用化MessageBodyReader支持映射消息实体流到所请求的类型的指定的Java类型的实例。
[...]
从该方法返回的消息实例将通过getEntity被缓存后续检索() 。
第一个电话ex.getResponse().getEntity()
是空的,因为实体尚未阅读呢。通话后readEntity()
,通过已分析解析实体将被退回getEntity()
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句