The following represents a call to add Person, where Person has a Map of Contacts (a pure get/set Bean) keyed by name. I can understand and account for contactNames being nil. The problem is that the client didn't seem to supply enough type information within the value element of the item to allow the MapDeserializer class to successfully find a QName in its ItemHandler context.getTypeFromAttributes(). The only information available durintg that call is the "item" localName". The result is a SOAPException that states there was no "contacts" field.
Is the problem in the Axis-generated Stub encoding or is it in my failure to figure out how to configure the MapDeserializer to deserialize something that I know exactly what it is. The item type is Contact.
Any hints? thanks
<?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>
<addPerson xmlns="urn:SessionRegistrarNS">
<in0 xmlns="">
<contactNames xsi:nil="true"/>
<contacts>
<item xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://xml.apache.org/xml-soap">
<key>SomeContactRole</key>
<value>
<city>Pasadena</city>
<email>[EMAIL PROTECTED]</email>
<phone>555-1212</phone>
<state>Maryland</state>
<streetAddress>Address2</streetAddress>
<streetAddress1>Address1</streetAddress1>
<streetAddress2 xsi:nil="true"/>
<zip>21122</zip>
</value>
</item>
</contacts>
<id xsi:nil="true"/>
<firstName>Dan3</firstName>
<lastName>Weimer3</lastName>
<name>Daniel Edward Weimer3</name>
</in0>
</addPerson>
</soapenv:Body>
</soapenv:Envelope>