I'm sorry if this has been asked before. I searched the archives for answers
to this but could not find any.
I am new to SOAP but would be surprised if this has not been asked before -
but here goes:

Im using Apache soap version 2.3.1

I have a deserializer mapped to 'someNs:login' but when my Apache SOAP web
service receives the envelope below it reports that a deserializer can't be
found for 'someNs:mrns0:login'. It includes the namespace 'pointer' in the
final soapType.

In the unmarshall(...) method of
org.apache.soap.encoding.soapenc.ParameterSerializer
It says:
    String name = paramEl.getTagName();      -- this is 'mrns0:login'

Ought it not be:
    String name = paramEl.getLocalName();    -- this is only 'login'

Enclosed envelope:

<soap:Envelope
    xmlns:mrns0="someNs"
    xmlns:mrns1="someNs:service"
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
   <soap:Body
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";>
      <mrns1:login>
         <mrns0:login>
            <mrns0:att1 xsi:type="mrns0:cvrtype"></mrns0:att1>
            <mrns0:att2 xsi:type="mrns0:pnumbertype"></mrns0:att2>
         </mrns0:login>
      </mrns1:login>
   </soap:Body>
</soap:Envelope>

/Chr

Reply via email to