I am trying to use a SOAP service I don't control.  The service does not
like the SOAP Header attribute: soapenv:mustUnderstand="0"
My client input data does not contain the  mustUnderstand  attribute, Axis2
is adding it! (see debug excerpt below)

How can I make the unwanted  mustUnderstand="0"  attribute in the SOAP
Header go away?

I generated Axis2 client databindings using wsdl2java.sh and the "-d" option
  wsdl2java.sh  -uri simple.wsdl -p ... -s -d none
I wrote an Axis2 client ;-)  I set options:
  stub._getServiceClient().getOptions().setSoapVersionURI(
Constants.URI_SOAP11_ENV);
  stub._getServiceClient().getOptions().setProperty(HTTPConstants.CHUNKED ,
"false");
  stub._getServiceClient().getOptions().setProperty(
AddressingConstants.DISABLE_ADDRESSING_FOR_OUT_MESSAGES, "true");
The Axis2 client code generates and sends a beautiful SOAP request:
  [DEBUG] >> "POST /SOAP HTTP/1.1[\r][\n]"
  [DEBUG] >> "Content-Type: text/xml; charset=UTF-8[\r][\n]"
  [DEBUG] >> "SOAPAction: "Sync"[\r][\n]"
  [DEBUG] >> "User-Agent: Axis2[\r][\n]"
  [DEBUG] >> "Host: somewhere.com:7443[\r][\n]"
  [DEBUG] >> "Content-Length: 2734[\r][\n]"
  [DEBUG] >> "[\r][\n]"
  [DEBUG] >> "<?xml version=' 1.0' encoding='UTF-8'?>
                      <soapenv:Envelope xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/";>
                      <soapenv:Header><ns:HdrElement xmlns:ns="..."
soapenv:mustUnderstand="0">
                      ...
The SOAP response has:
  [DEBUG] << "<faultcode>SOAP-ENV:Client</faultcode>
  [DEBUG] << "<faultstring>Request not conforming to schema</faultstring>
  [DEBUG] << "<description> error parsing &apos;XML document&apos;:: Error
at line 1: /soapenv:Envelope/soapenv:Header/ns:HdrElement: undeclared
attribute: &quot;mustUnderstand&quot;:
/soapenv:Envelope/soapenv:Header/ns:HdrElement: undeclared attribute:
&quot;mustUnderstand&quot;&#10; </description>

dana j hess

Reply via email to