[ 
https://issues.apache.org/jira/browse/AXIS2-3797?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12735852#action_12735852
 ] 

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.

eg.
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
<anything>
   <element1>test</element1>
   <element2>test</element2>
</anything>

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 class. 

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: https://issues.apache.org/jira/browse/AXIS2-3797
>             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, TypeTestClient.java
>
>
> I have a simple POJO service with the following method:
> package org.tempuri.test;
> import org.tempuri.test.data.arrays.ArrayOfanyType;
>  
> 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("http://www.serverside.com/articles/introducingAxiom";,
>  "article");
> 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" exception:
> Caused by: javax.xml.stream.XMLStreamException: Unknow type can not serialize
>       at 
> org.apache.axis2.databinding.utils.ConverterUtil.serializeAnyType(ConverterUtil.java:1449)
>       at 
> org.tempuri.test.data.arrays.xsd.ArrayOfanyType.serialize(ArrayOfanyType.java:241)
>       at 
> org.tempuri.test.data.arrays.xsd.ArrayOfanyType.serialize(ArrayOfanyType.java:160)
>       at 
> org.tempuri.test.RetArrayAnyType1D.serialize(RetArrayAnyType1D.java:203)
>       at 
> org.tempuri.test.RetArrayAnyType1D.serialize(RetArrayAnyType1D.java:123)
>       at 
> org.tempuri.test.RetArrayAnyType1D$1.serialize(RetArrayAnyType1D.java:111)
> ...
> 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.

Reply via email to