Hi Francesco

On 09/07/14 10:16, Francesco Chicchiriccò wrote:
On 09/07/2014 10:45, Francesco Chicchiriccò wrote:
iI all,
this snippet

WebClient client = ...;
Response response = client.invoke(method, inputStream);
response.getEntity();

fails with

java.lang.IllegalStateException: Entity is not available
        at
org.apache.cxf.jaxrs.impl.ResponseImpl.checkEntityIsClosed(ResponseImpl.java:475)

        at
org.apache.cxf.jaxrs.impl.ResponseImpl.getActualEntity(ResponseImpl.java:137)

        at
org.apache.cxf.jaxrs.impl.ResponseImpl.getEntity(ResponseImpl.java:142)

I am using CXF 3.0.0 (the same code works fine with CXF 2.7.11): any
idea?

It seems I've over-simplified the snippet above: it should have been,
actually

WebClient client = ...;
Response response = client.invoke(method, inputStream);
client.close();
response.getEntity();

It seems that with CXF 3.0.0 closing a client implies also closing the
response object, thus causing the exception above: correct?

Yes. I did it for the code to stay in sync  with
https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/client/Client.html#close()

"Close client instance and all it's associated resources" implied to me that a Response Input Stream also needs to be closed due to it being a 'production' of the client activity.

However now I'm not exactly sure a Response needs to be closed if the client is closed. There's no any guidance right now in JAX-RS 2.0 docs so I'll ask and get back

Thanks, Sergey


Regards.


Reply via email to