Success!

I found that on my deserializer side, it is a two stop process:  One must 
register the deserializer for the class in the array and for the array 
itself.  Oddly, this does not appear necessary on the serializer side:  TCP 
Monitor shows the same soapenv:Envelope regardless.  So, in my serialzer's 
serialize() method, I have

  TypeMappingRegistry reg = context.getTypeMappingRegistry();
  TypeMapping tm = (TypeMapping)   
       reg.getOrMakeTypeMapping(Constants.URI_SOAP11_ENC);
  tm.register( ACLRec.class, OASQNames.aclRecQName,
       new ArraySerializerFactory(ACLRec.class, OASQNames.aclRecQName),        
       new ArrayDeserializerFactory(OASQNames.aclRecQName));

while in my deserializer I have

  TypeMappingRegistry reg = context.getTypeMappingRegistry();
  TypeMapping tm = (TypeMapping)   
       reg.getOrMakeTypeMapping(Constants.URI_SOAP11_ENC);
  tm.register( ACLRec.class, OASQNames.aclRecQName, 
       new ACLRecSerFactory(), new ACLRecDeserFactory() );
  tm.register( ACLRec[].class, OASQNames.aclRecArrQName,
       new ArraySerializerFactory(ACLRec.class, OASQNames.aclRecQName),        
       new ArrayDeserializerFactory(OASQNames.aclRecQName));

I believe this is because ArrayDeserializerFactory initializes only with a 
QName, not a class and QName.  Why not?  Is that an oversight in the API?

On Friday 12 August 2005 16:34, Thad Humphries wrote:
> I'm having trouble deserializing a class that includes an array member.

Reply via email to