I had a similar prooblem and I got a hint which helped me:
Problem was that Axis tried to deserialize an arry with a BeanDeserializer.
Solution:
Move array type definition from <faimilyMembers> ... </fmiliyMemnbers> into type definitions where the array is used:
<complexType name="FamilyInfo">
<sequence>
<element name="type" nillable="true" type="tns1:FamilyType"/>
<!--
<element name="familyMembers" nillable="true" type="impl:ArrayOf_tns1_DocumentID"/>
-->
<element name="familyMembers" nillable="true" <complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns1:DocumentID[]"/>
</restriction>
</element> </complexContent>
<element name="representativeDocumentID" nillable="true" type="tns1:DocumentID"/>
</sequence>
.
May be this helps.
Bye
Hey Edwin, I'm being bugged by almost the same problem man. I have read all the related archive messages but couldn't find what's going wrong with my code. Actually my data transfer webservice was working perfect for last many months. But broke down 2 days ago when an update was made on the destination server.
Can't figure out what's wrong.
Vikas
-----Original Message-----
From: Edwin Litterst [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 08, 2003 9:32 AM
To: [EMAIL PROTECTED]
Subject: deserializer not found
Hi,
I am getting the following exception from a call:
No deserializer defined for array type {http://namespaces.soaplite.com/perl}DocumentID
The returned soap data is: ... <familyMembers xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="DocumentID[1] <http://marc.theaimsgroup.com/?l=axis-user&m=106563663619163&w=2#1>"> <DocumentID xsi:type="namesp2:DocumentID"> <ID xsi:type="xsd:string">member1</ID> </DocumentID> </familyMembers> ...
The corresponding parts of the WSDL:
<complexType name="FamilyInfo">
<sequence>
<element name="type" nillable="true" type="tns1:FamilyType"/>
<element name="familyMembers" nillable="true" type="impl:ArrayOf_tns1_DocumentID"/>
<element name="representativeDocumentID" nillable="true" type="tns1:DocumentID"/>
</sequence>
...
<complexType name="ArrayOf_tns1_DocumentID">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns1:DocumentID[]"/>
</restriction>
</complexContent>
</complexType>
...
<complexType name="DocumentID">
<sequence>
<element name="ID" nillable="true" type="xsd:string"/>
</sequence>
The WSDL was generated with Java2WSDL, and the Java sources with WSDL2Java, the server is written in perl using SOAP::Lite.
Because SOAP::Lite has only a limited support of WSDL I am not 100% sure whether the SOAP data really is correct, but as far as I understand it, it should be.
Is there really no deserializer available or is something wrong with my namespace? In either case, what do I have to do?
(I already searched the archive, but the mails I found didn't really help me.)
TIA, Eddie