axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Amila Chinthaka Suriarachchi (JIRA)" <>
Subject [jira] Commented: (AXIS2-3797) "Unknown type can not serialize" Exception
Date Tue, 28 Jul 2009 00:10:15 GMT


Amila Chinthaka Suriarachchi commented on AXIS2-3797:

My interpretation of any type is it has to map to an object. And at runtime this object can
have a simple type or an complex type. i.e. generated ADB bean object in ADB case.

if there this and xml schema part like this

<xsd:element name="anything" type="xsd:anyType"/>
then  <anything xsi:type="xsd:string>test<anything> is a valid serialized xml
element. how we going to represent this if we use an OMElement?

And also lets say we get something like this

then how <element1>test</element1><element2>test</element2> going
to represent as an OMElment?

In my interpretation anyType is like java.lang.Object. All classes are extend from Object

when you use anyType for an element it is like using Object type for an java field. At runtime
the element can have  any type but the type should be a defined one. And hence you should
have a value to xsi:type.

I Agree with you that what schema says is ambiguous. This is the only interpretation I can
come up with to write a possible
implementation. In this way I could interoperate the anyType with the MSFT wsdl where with
OMElement it was not possible.

> "Unknown type can not serialize" Exception
> ------------------------------------------
>                 Key: AXIS2-3797
>                 URL:
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: adb
>    Affects Versions: 1.4
>         Environment: Axis2 1.4, Tomcat 5.5.26
>            Reporter: Detelin Yordanov
>            Assignee: Andreas Veithen
>         Attachments: full stacktrace.txt, TypeTest.aar,
> I have a simple POJO service with the following method:
> package org.tempuri.test;
> import;
> public class TypeTest {
>     public ArrayOfanyType retArrayAnyType1D(ArrayOfanyType inArrayAnyType1D) {
>         return inArrayAnyType1D;
>     }
> }
> The ArrayOfanyType is declared like this:
> public class ArrayOfanyType {
>     private Object[] anyType;
>     public Object[] getAnyType() {
>         if (anyType == null) {
>             anyType = new Object[0];
>         }
>         return this.anyType;
>     }
>     public void setAnyType(Object[] anyType) {
>     	this.anyType = anyType;
>     }
> }
> I deploy this POJO on an Axis2 1.4 runtime running on Tomcat.
> Then I generate a client stub using the following command:
> wsdl2java -ap -o ./generated -s -u -uw -uri http://localhost:8080/axis2-1.4/services/TypeTest?wsdl
> I use the stub to invoke the service passing an OMElement in the Object array:
> OMFactory factory = OMAbstractFactory.getOMFactory();
> OMNamespace ns = factory.createOMNamespace("",
> OMElement articleElement = factory.createOMElement("Article", ns);
> ArrayOfanyType input = new ArrayOfanyType();
> input.setAnyType(new OMElement[]{articleElement});
> stub.retArrayAnyType1D(input);
> While serializing the ArrayOfanyType ADBBean I get an "Unknown type can not serialize"
> Caused by: Unknow type can not serialize
> 	at org.apache.axis2.databinding.utils.ConverterUtil.serializeAnyType(
> 	at
> 	at
> 	at org.tempuri.test.RetArrayAnyType1D.serialize(
> 	at org.tempuri.test.RetArrayAnyType1D.serialize(
> 	at org.tempuri.test.RetArrayAnyType1D$1.serialize(
> ...
> I did not have this problem on Axis2 1.3 so I guess something have been changed in ConverterUtil.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message