Pratik Pai created CXF-6733:
-------------------------------
Summary: Reading response body for HTTP 202 request
Key: CXF-6733
URL: https://issues.apache.org/jira/browse/CXF-6733
Project: CXF
Issue Type: Bug
Components: Core, Transports
Affects Versions: 3.1.4
Environment: Apache CXF 3.1.4, Windows 7 Professional 64 Bit System
Reporter: Pratik Pai
Fix For: Invalid
Background:
Developing a cxf client to consume service developed in dot net.
Aim:
To read content returned by the service in case of HTTP 202
Scenario:
The service I am calling does not support WS-Addressing but still returns HTTP
202 with SOAP envelope response.
Issue:
As soon as the service returns a HTTP 202 it is treated as a one-way request
and the response is ignored. In order to process that response I have set the
property
BindingProvider provider = (BindingProvider)port;
provider.getRequestContext().put(Message.PROCESS_ONEWAY_RESPONSE, true);
which now allows me to process the response in case of HTTP 202 but the same is
not set in the resulting object. This is because of the method
processResult(class ClientImpl in the core jar) returning null due to the below
code which expects a decoupled endpoint which is not true in my scenario.
Integer responseCode = (Integer)exchange.get(Message.RESPONSE_CODE);
if (null != responseCode && 202 == responseCode) {
Endpoint ep = exchange.getEndpoint();
if (null != ep && null != ep.getEndpointInfo() && null ==
ep.getEndpointInfo().
getProperty("org.apache.cxf.ws.addressing.MAPAggregator.decoupledDestination"))
{
return null;
}
}
Please suggest if I have missed out on something or whether a fix can be
provided in the above code.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)