[prev in list] [next in list] [prev in thread] [next in thread] 

List:       axis-dev
Subject:    [jira] Commented: (AXIS2-3797) "Unknown type can not serialize"
From:       "Amila Chinthaka Suriarachchi (JIRA)" <jira () apache ! org>
Date:       2008-08-31 8:05:44
Message-ID: 1392846547.1220169944232.JavaMail.jira () brutus
[Download RAW message or body]


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

Amila Chinthaka Suriarachchi commented on AXIS2-3797:
-----------------------------------------------------

When generating code with the wsdl2java tool it takes inputs only from the wsdl file. \
So if there is an element of the type anyType it generates an object type parameter \
for this. xsd:anyType is the parent type for all XmlSchema types as java.lang.Object \
for java objects.

eg.
<complexType>
            <sequence>
                <element name="testValue" type="xsd:anyType" minOccurs="0" \
nillable="true"/>  </sequence>
        </complexType>

Here you can give any standard java class so that it serialize it with the type.

eg. <testValue xsi:type="xsd:int">5</testValue>

so at the other end it can creates the proper objects depends on the type.

But if you have a schema like this

<complexType>
            <sequence>
                <any/>
            </sequence>
        </complexType>

then ADB generates an OMElement for the corresponding parameter and hence you can \
parse an OMElement.

Here you can assume that the wsdl2java tool is something which try to generate a \
code, so that the generated code serialize java objects and parse xmlstreams \
according to the schema given in the wsdl. It does not have an idea about the \
implementation logic of the service.



> "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: Amila Chinthaka Suriarachchi
> 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.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic