Axis2
  1. Axis2
  2. AXIS2-3797

"Unknown type can not serialize" Exception

    Details

    • Type: Bug Bug
    • Status: Reopened
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 1.4
    • Fix Version/s: None
    • Component/s: adb
    • Labels:
      None
    • Environment:
      Axis2 1.4, Tomcat 5.5.26

      Description

      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.

      1. TypeTest.aar
        3 kB
        Detelin Yordanov
      2. TypeTestClient.java
        1 kB
        Detelin Yordanov
      3. full stacktrace.txt
        3 kB
        Detelin Yordanov

        Issue Links

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              Detelin Yordanov
            • Votes:
              5 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:

                Development