You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Thorsten Höger <li...@hoegernet.de> on 2014/02/06 07:13:51 UTC
JAXRSClient does not contain response headers
Hi,
I have a problem using the JAXRSClient with response headers. If the
return value is of type javax.ws.rs.core.Response the returned instance
does not contain response headers in some cases.
I set up a test branch on github under
https://github.com/hoegertn/cxf-spring-aop
This repo contains a branch "responseHeader" which has unit tests to
show the problem.
To run this project start de.hoegertn.Starter as Java Application and
then launch de.hoegertn.TestHeaders as JUnit-Test.
Both tests should print out the response headers received from the API.
But only the response containing a body has headers set on the client-side.
I think the problem occurs in org.apache.cxf.jaxrs.client.AbstractClient:366
Am I doing something wrong when creating the JAXRSClient or is this a bug?
Regards,
Thorsten
Re: JAXRSClient does not contain response headers
Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi Thorsten
On 06/02/14 06:13, Thorsten Höger wrote:
> Hi,
>
> I have a problem using the JAXRSClient with response headers. If the
> return value is of type javax.ws.rs.core.Response the returned instance
> does not contain response headers in some cases.
>
> I set up a test branch on github under
> https://github.com/hoegertn/cxf-spring-aop
>
> This repo contains a branch "responseHeader" which has unit tests to
> show the problem.
>
> To run this project start de.hoegertn.Starter as Java Application and
> then launch de.hoegertn.TestHeaders as JUnit-Test.
>
> Both tests should print out the response headers received from the API.
> But only the response containing a body has headers set on the client-side.
> I think the problem occurs in org.apache.cxf.jaxrs.client.AbstractClient:366
>
> Am I doing something wrong when creating the JAXRSClient or is this a bug?
You have the server returning 202 accepted and HttpConduit treats the
case with 202 and no body, when no async mode is enabled, specifically
and does not initiates the client message observer, but also losing the
in message which contains HTTP response headers.
I think, for now, we can do a minor fix in HttpConduit to ensure that
the response message is attached to the exchange in such a rare case -
the headers should be visible to the receivers such as an RS client
expecting the untyped Response.
I'm not sure about running the client observer in this case though,
might optionally be done (example, by having a property set) if needed
in the future
See
https://issues.apache.org/jira/browse/CXF-5547
Thanks, Sergey
>
> Regards,
> Thorsten
>