Hi,

I have a problem concerning the deserialization of a vector of beans.

I have the following classes:
Client
Article
Order

Those are all bean classes. The class Order contains a field Client and a Vector of Articles.

The type mappings in my deployment descriptor look like this:

/<beanMapping qname="ns:order"
xmlns:ns="BeanNamespace"
languageSpecificType="java:bean.test.beanclasses.Order"
/>
<beanMapping qname="ns:article"
xmlns:ns="BeanNamespace"
languageSpecificType="java:bean.test.beanclasses.Article"
/>
<beanMapping qname="ns:client"
xmlns:ns="BeanNamespace"
languageSpecificType="java:bean.test.beanclasses.Client"
/>
<typeMapping
xmlns:mt="BeanNamespace" qname="mt:articles"
type="java:bean.test.beanclasses.Article"
serializer="org.apache.axis.encoding.ser.VectorSerializerFactory"
deserializer="org.apache.axis.encoding.ser.VectorDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; />/



On the client side I register the mappings like this:

/QName qn1 = new QName("BeanNamespace", "order");
QName qn2 = new QName("BeanNamespace", "article"); QName qn3 = new QName("BeanNamespace", "client");
QName qn5 = new QName("BeanNamespace", "artikels");
QName qn6 = new QName("BeanNamespace", "vector");
call.registerTypeMapping(Order.class,
qn1,
new BeanSerializerFactory(Order.class, qn1),
new BeanDeserializerFactory(Order.class, qn1));
call.registerTypeMapping(Article.class,
qn2,
new BeanSerializerFactory(Article.class, qn2),
new BeanDeserializerFactory(Article.class, qn2));
call.registerTypeMapping(Client.class,
qn3,
new BeanSerializerFactory(Client.class, qn3),
new BeanDeserializerFactory(Client.class, qn3));
call.registerTypeMapping(Vector.class,
qn6,
new VectorSerializerFactory(Article.class, qn5),
new VectorDeserializerFactory(Article.class, qn5));


/
When I try to invoke the service, I get the following error:
/org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
/
When I used an array Article[] instead of a vector and the typemappings:
/<typeMapping
xmlns:mt="BeanNamespace" qname="mt:articles"
type="java:bean.test.beanclasses.Article[]"
serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
/>/
and on the client side
/call.registerTypeMapping(Article[].class,
qn5,
new ArraySerializerFactory(),
new ArrayDeserializerFactory());/


everything worked fine.

Does someone know the answer to my problem?

Bye
Timo

Reply via email to