I have seen postings about deserializing arrays from last January, but didn't find an answer to my problem. I am trying to pass an object from my service back to the client and am getting a "no deserializer defined for array type {regisproject.util}Product" error. The object being passed back is a bean (catalog) that contains an array of bean objects (products). Using TCPMon I see that the message sent to the client has the right data -
<soapenv:Body> <ns1:getCatalogResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="ProductDbHelper"> <getCatalogReturn href="#id0"/> </ns1:getCatalogResponse> <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:Catalog" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="regisproject.util"> <products xsi:type="soapenc:Array" soapenc:arrayType="ns2:Product[5]"> <item href="#id1"/> <item href="#id2"/> <item href="#id3"/> <item href="#id4"/> <item href="#id5"/> </products> </multiRef> <multiRef id="id4" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:Product" xmlns:ns3="regisproject.util" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> <description xsi:type="xsd:string" xsi:nil="true"/> <id xsi:type="xsd:string">4 </id> <inventory xsi:type="xsd:double">55.0</inventory> <name xsi:type="xsd:string">Test Product 456</name> <nextShipDate xsi:type="xsd:dateTime">2003-01-01T07:00:00.000Z</nextShipDate> <nextShipQty xsi:type="xsd:double">100.0</nextShipQty> <price xsi:type="xsd:double">1234.56</price> <status xsi:type="xsd:string">not active</status> <vendorId xsi:type="xsd:string">3 </vendorId> <vendorName xsi:type="xsd:string">Parts-R-Us</vendorName> </multiRef> ... In my deploy.wsdd I have bean mappings for Product and Catalog - <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="ProductDbHelper" provider="java:RPC"> <parameter name="className" value="regisproject.database.ProductDbHelper"/> <parameter name="allowedMethods" value="test,getProduct,getCatalog"/> <beanMapping qname="myNS:Product" xmlns:myNS="regisproject.util" languageSpecificType="java:regisproject.util.Product"/> <beanMapping qname="myNS:Catalog" xmlns:myNS="regisproject.util" languageSpecificType="java:regisproject.util.Catalog"/> </service> </deployment> Do I need to add something for the array to the .wsdd? Any ideas as to what else is needed? Note: I have another service that returns a single product and it deserializes without any problem. Thanks for any help you can provide.