I should note that when I commented out the following SOAPBinding on the API,
it started working:
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT,
use = SOAPBinding.Use.LITERAL,
parameterStyle = SOAPBinding.ParameterStyle.BARE)
I don't know what the reason for this would be though.
-Ryan
From: "Ryan F. Shelley"
<[email protected]<mailto:[email protected]>>
Date: Saturday, September 1, 2012 4:02 PM
To: "[email protected]<mailto:[email protected]>"
<[email protected]<mailto:[email protected]>>
Subject: Operation in request
For some reason, I end up with different generated SOAP requests between the
CXF client and a soapUI client. The one from soapUI works. The one from CXF
doesn't. Here are the two generated requests and the error:
CXF's Request:
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"<http://schemas.xmlsoap.org/soap/envelope/%22>>
<soap:Body>
<ns2:getOrderDetails xmlns:ns2="http://foo/"<http://foo/%22>>
<getOrderDetailsRequest>
<getOrderDetailsPayload id="3545"></getOrderDetailsPayload>
</getOrderDetailsRequest>
</ns2:getOrderDetails>
</soap:Body>
</soap:Envelope>
soapUI's Request:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ord="http://foo/"<http://foo/%22>>
<soapenv:Header/>
<soapenv:Body>
<ord:getOrderDetailsRequest>
<getOrderDetailsPayload id="3545"></getOrderDetailsPayload>
</ord:getOrderDetailsRequest>
</soapenv:Body>
</soapenv:Envelope>
Note that the real difference between the two is that "getOrderDetails" element
exists in the CXF request, and NOT in the soapUI request. When I run the soapUI
request it fires my code fine. The CXF client request however results in the
following error:
Caused by: org.apache.cxf.binding.soap.SoapFault: Unmarshalling Error:
unexpected element (uri:"", local:"getOrderDetailsRequest"). Expected elements
are <{}getOrderDetailsPayload>
I don't know which is correct, but I really need the CXF client to work. How do
I get the client to NOT include the operation OR make the endpoint require the
operation element?
-Ryan