[ 
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

Reply via email to