Hi.

I have deployed a (message) web service with axis 1.1, but the service
is answering http/500, mustUnderstand failed. I find this extremely
weird, since I have marked the header as processed, like this:

SOAPHeaderElement soapHeaderElement;
try {
        Iterator it = req.getHeader().getChildElements();
        while (it.hasNext()) {
                soapHeaderElement = (SOAPHeaderElement) it.next();
                if (soapHeaderElement.getMustUnderstand()) {
                        soapHeaderElement.setProcessed(true);
                }
        }
} catch (Exception e) {
        log.error("Error al obtener el Header del mensaje recibido");
        throw new MM7Exception(MM7Exception.SERVER,
                        "The header from the received message couldn't be get.",
                        MM7_RES.SC_SERVERROR, e.getMessage());
}

The code executes (there is no exception raised) but the service
returns that it didn't understand the header with mustUnderstand="1".

This is the incoming message:

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/";>
 <env:Header>
  <mm7:TransactionID env:mustUnderstand="1"
xmlns:mm7="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-2";>[EMAIL
 PROTECTED]</mm7:TransactionID>
 </env:Header>
 <env:Body>
  <DeliverReq 
xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-2";>
        <MM7Version>5.3.0</MM7Version>
        <Sender>
           <Number>1234567890</Number>
      </Sender>
        <Recipients>
        <To>
        <Number>1234</Number>
      </To>
      </Recipients>
        <Subject>Test</Subject>
        <Content href="cid:mms_cid"/>
   </DeliverReq>
 </env:Body>
</env:Envelope>

And this is what is going back through the wire:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 <soapenv:Body>
  <soapenv:Fault>
   <faultcode>soapenv:MustUnderstand</faultcode>
   <faultstring>Did not understand &quot;MustUnderstand&quot;
header(s):</faultstring>
   <detail/>
  </soapenv:Fault>
 </soapenv:Body>
</soapenv:Envelope>

This is Axis 1.1 running on Tomcat 5.5/Linux. Any help is appreciated.

-- 
Javier Gonzalez Nicolini

Reply via email to