Uploaded image for project: 'Axis2'
  1. Axis2
  2. AXIS2-3797

"Unknown type can not serialize" Exception

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Reopened
    • Major
    • Resolution: Unresolved
    • 1.4
    • None
    • adb
    • None
    • 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.

      Attachments

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

        Issue Links

          Activity

            People

              Unassigned Unassigned
              detyo Detelin Yordanov
              Votes:
              5 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: