[ https://issues.apache.org/jira/browse/AXIS2-4820?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yang Wang updated AXIS2-4820: ----------------------------- Comment: was deleted (was: Where can I get 1.7.0 snapshots?) > generateWrappedArrayTypes is showing types as wrapped in the schema, but the > serialized data send to the client is not wrapped. > ------------------------------------------------------------------------------------------------------------------------------- > > Key: AXIS2-4820 > URL: https://issues.apache.org/jira/browse/AXIS2-4820 > Project: Axis2 > Issue Type: Bug > Components: adb > Affects Versions: 1.5.1 > Environment: Axis 2 1.5.1 + tomcat 5.5.29 > java version "1.6.0_20" > Windows XP SP3 > Reporter: Paul Nibin K J > Fix For: 1.7.0 > > Attachments: SimpleTest.jar > > Original Estimate: 72h > Remaining Estimate: 72h > > I am trying to deploy a web service which returns a complex bean object. > My Test web service class is > public class SimpleTest { > public static class ComplexBean { > public String[] getStr() { > return str; > } > public void setStr(String[] str) { > this.str = str; > } > public Object[][] getVal() { > return val; > } > public void setVal(Object[][] val) { > this.val = val; > } > private String[] str; > private Object[][] val; > } > public ComplexBean getBean() { > ComplexBean complexBean = new ComplexBean(); > complexBean.setStr(new String[] { "1", "2" }); > complexBean.setVal(new Object[][] { new Object[] { "1-a", "1-b" > }, > new Object[] { "2-a", "2-b" } }); > return complexBean; > } > } > I deployed the service and the WSDL is generated. The schema for the > generated WSDL is as follows: > <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" > targetNamespace="http://ws.apache.org/axis2/xsd"> > <xs:complexType name="ComplexBean"> > <xs:sequence> > <xs:element maxOccurs="unbounded" minOccurs="0" > name="str" nillable="true" type="xs:string"/> > <xs:element maxOccurs="unbounded" minOccurs="0" > name="val" nillable="true" type="ax21:ArrayOfObject"/> > </xs:sequence> > </xs:complexType> > <xs:complexType name="ArrayOfObject"> > <xs:sequence> > <xs:element maxOccurs="unbounded" minOccurs="0" > name="array" nillable="true" type="xs:anyType"/> > </xs:sequence> > </xs:complexType> > </xs:schema> > I created the client for the WSDL using the ADB. I invoked the web method > using the client. The web method is invoked and I captured the SOAP response. > It is as follows. > <?xml version='1.0' encoding='UTF-8'?> > <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> > <soapenv:Body> > <ns:getBeanResponse xmlns:ns="http://test"> > <ns:return > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:ax21="http://test/xsd" xsi:type="ax21:ComplexBean"> > <ax21:str>1</ax21:str> > <ax21:str>2</ax21:str> > <ax21:val> > <ax21:array>1-a</ax21:array> > <ax21:array>1-b</ax21:array> > </ax21:val> > <ax21:val> > <ax21:array>2-a</ax21:array> > <ax21:array>2-b</ax21:array> > </ax21:val> > </ns:return> > </ns:getBeanResponse> > </soapenv:Body> > </soapenv:Envelope> > But in the client side, I am getting an exception. > log4j:WARN No appenders could be found for logger > (org.apache.axis2.description.AxisService). > log4j:WARN Please initialize the log4j system properly. > Exception in thread "main" org.apache.axis2.AxisFault: > org.apache.axis2.databinding.ADBException: Any type element type has not been > given > at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) > at test.SimpleTestStub.fromOM(SimpleTestStub.java:2463) > at test.SimpleTestStub.getBean(SimpleTestStub.java:189) > at test.TestSimpleClient.main(TestSimpleClient.java:12) > Caused by: java.lang.Exception: org.apache.axis2.databinding.ADBException: > Any type element type has not been given > at > test.SimpleTestStub$ArrayOfObject$Factory.parse(SimpleTestStub.java:2411) > at > test.SimpleTestStub$ComplexBean$Factory.parse(SimpleTestStub.java:1729) > at > test.SimpleTestStub$GetBeanResponse$Factory.parse(SimpleTestStub.java:870) > at test.SimpleTestStub.fromOM(SimpleTestStub.java:2457) > ... 2 more > Caused by: org.apache.axis2.databinding.ADBException: Any type element type > has not been given > at > org.apache.axis2.databinding.utils.ConverterUtil.getAnyTypeObject(ConverterUtil.java:1617) > at > test.SimpleTestStub$ArrayOfObject$Factory.parse(SimpleTestStub.java:2375) > ... 5 more > Is this a known issue? Is this issue same as > https://issues.apache.org/jira/browse/AXIS2-4439 ? Is there a patch available > for this issue? > Anyways I tried the web service by setting the "generateWrappedArrayTypes" > parameter as true in the services.xml. I found there is change in the WSDL > generated. > <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" > targetNamespace="http://test/xsd"> > <xs:complexType name="ComplexBean"> > <xs:sequence> > <xs:element name="strWrapper" nillable="true" > type="ns:stringWrapper"/> > <xs:element name="valWrapper" nillable="true" > type="ns:ArrayOfObjectWrapper"/> > </xs:sequence> > </xs:complexType> > <xs:complexType name="stringWrapper"> > <xs:sequence> > <xs:element maxOccurs="unbounded" minOccurs="0" > name="array" nillable="true" type="xs:string"/> > </xs:sequence> > </xs:complexType> > <xs:complexType name="anyTypeWrapper"> > <xs:sequence> > <xs:element maxOccurs="unbounded" minOccurs="0" > name="array" nillable="true" type="xs:anyType"/> > </xs:sequence> > </xs:complexType> > <xs:complexType name="ArrayOfObject"> > <xs:sequence> > <xs:element name="arrayWrapper" nillable="true" > type="ns:anyTypeWrapper"/> > </xs:sequence> > </xs:complexType> > <xs:complexType name="ArrayOfObjectWrapper"> > <xs:sequence> > <xs:element maxOccurs="unbounded" minOccurs="0" > name="array" nillable="true" type="ax21:ArrayOfObject"/> > </xs:sequence> > </xs:complexType> > </xs:schema> > But the SOAP Response that got send back was same as before with no change. > I was under the impression that SOAP Response send back also should be > different. ( http://www.ibm.com/developerworks/library/ws-array/sidefile.html > ) > Again I generated the client using ADB itself. While invocation I got another > exception. > log4j:WARN No appenders could be found for logger > (org.apache.axis2.description.AxisService). > log4j:WARN Please initialize the log4j system properly. > Exception in thread "main" org.apache.axis2.AxisFault: > org.apache.axis2.databinding.ADBException: Unexpected subelement val > at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) > at test.SimpleTestStub.fromOM(SimpleTestStub.java:1541) > at test.SimpleTestStub.getBean(SimpleTestStub.java:189) > at test.TestSimpleClient.main(TestSimpleClient.java:12) > Caused by: java.lang.Exception: org.apache.axis2.databinding.ADBException: > Unexpected subelement val > at > test.SimpleTestStub$ComplexBean$Factory.parse(SimpleTestStub.java:1489) > at > test.SimpleTestStub$GetBeanResponse$Factory.parse(SimpleTestStub.java:870) > at test.SimpleTestStub.fromOM(SimpleTestStub.java:1535) > ... 2 more > Caused by: org.apache.axis2.databinding.ADBException: Unexpected subelement > val > at > test.SimpleTestStub$ComplexBean$Factory.parse(SimpleTestStub.java:1483) > ... 4 more > I could provide more information if required.. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org For additional commands, e-mail: java-dev-h...@axis.apache.org