You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Javier Gonzalez <ja...@gmail.com> on 2005/08/24 18:57:14 UTC

mustUnderstand fault even after setProcessed(true)

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">20050824125910-D3323314@somehost.or.the.other</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