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



Reply via email to