axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sagara Gunathunga (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (AXIS2-4820) generateWrappedArrayTypes is showing types as wrapped in the schema, but the serialized data send to the client is not wrapped.
Date Tue, 05 Jun 2012 10:00:23 GMT

     [ https://issues.apache.org/jira/browse/AXIS2-4820?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Sagara Gunathunga  resolved AXIS2-4820.
---------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.7.0

Fixed in 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-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Mime
View raw message