[ http://issues.apache.org/jira/browse/AXIS-1569?page=all ]
Davanum Srinivas resolved AXIS-1569:
------------------------------------
Resolution: Fixed
Since the original problem has beed solved. am closing this bug.
thanks,
dims
> Problems with Deserialzing Arrays by the Axis Servlet and the Axis Client for
> a Doc/Literal service
> ---------------------------------------------------------------------------------------------------
>
> Key: AXIS-1569
> URL: http://issues.apache.org/jira/browse/AXIS-1569
> Project: Axis
> Type: Bug
> Components: Serialization/Deserialization
> Versions: beta-3
> Environment: axis-1_2beta3, Java 1.4.2, Tomcat 5.0.27,
> WindowsXP(Professional)
> Reporter: Kachra Patti
> Attachments: Bean.java, TestService-deploy.wsdd, TestService.java,
> TestService.wsdl, TestServiceServiceTestCase.java
>
> Some Background
> ===============
> STEP1: Created a very simple class TestService, which contains a method
> hello(), that merely returns the input
> public class TestService {
> public Bean hello(Bean input) {return input; }
> }
> STEP 2: The input is a Bean instance, that has properties of types String,
> Integer, Date and String[]
> public class Bean {
> private String stringField;
> private Integer integerField;
> private java.util.Date dateField;
> private String[] stringArray;
> ...
> }
> STEP 3: TestService.wsdl was then created manually, to expose the above
> method as a webservice. The following fragment shows the description of the
> Bean in the WSDL.
> ...
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
> elementFormDefault="qualified" targetNamespace="http://www.example.com/types">
> <complexType name="Bean">
> <sequence>
> <element name="stringField" nillable="true" type="xsd:string"/>
> <element name="integerField" nillable="true" type="xsd:int"/>
> <element name="dateField" nillable="true" type="xsd:dateTime"/>
> <element name="stringArray" nillable="true" type="xsd:string"
> minOccurs="0" maxOccurs="unbounded"/>
> </sequence>
> </complexType>
> </schema>
> ...
> STEP 4: Used the axis-wsdl2java task to generate deployment descriptors and
> test stubs from the WSDL. Used the following code in the test class to invoke
> the webservice
> ...
> Bean input = new Bean();
> input.setStringField("TEST STRING");
> input.setIntegerField(new Integer(1001));
> input.setDateField(new java.util.GregorianCalendar());
> input.setStringArray(new String[] {"aa", "bb", "cc"});
> Bean output = binding.hello(input);
> ...
> Problems
> ========
> 1- Only the last object in the StringArray property is made available to the
> TestService by the Axis Servlet. Eg. For the above test code, only the String
> "cc" is available to the hello() method
> 2- The client throws the following error, when deserializing the output from
> the webservice
> org.xml.sax.SAXException: SimpleDeserializer encountered a child element,
> which is NOT expected, in something it was trying to deserialize.
> at
> org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:149)
> at
> org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1025)
> at
> org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:159)
> at
> org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:845)
> at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:198)
> at org.apache.axis.message.RPCElement.getParams(RPCElement.java:323)
> at org.apache.axis.client.Call.invoke(Call.java:2418)
> at org.apache.axis.client.Call.invoke(Call.java:2317)
> at org.apache.axis.client.Call.invoke(Call.java:1774)
> at
> com.example.TestServiceSoapBindingStub.hello(TestServiceSoapBindingStub.java:144)
> at
> com.example.TestServiceServiceTestCase.test1TestServiceHello(TestServiceServiceTestCase.java:42)
> 3- Invoked the webservice from the .NET WebService Studio. Again, only the
> last element in the StringArray property is made available to the TestService
> by the Axis Servlet
> Input
> ====
> <?xml version="1.0" encoding="utf-8"?>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <soap:Body>
> <helloInput xmlns="http://www.example.com/wsdl">
> <stringField>TEST STRING</stringField>
> <integerField>1001</integerField>
> <dateField>2004-09-22T00:00:00.0000000-07:00</dateField>
> <stringArray>aa</stringArray>
> <stringArray>bb</stringArray>
> <stringArray>cc</stringArray>
> </helloInput>
> </soap:Body>
> </soap:Envelope>
> Output
> =====
> <?xml version="1.0" encoding="utf-8"?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <soapenv:Body>
> <helloReturn xmlns="http://www.example.com/wsdl">
> <dateField>2004-09-22T07:00:00.000Z</dateField>
> <integerField>1001</integerField>
> <stringArray>
> <item xmlns="">cc</item>
> </stringArray>
> <stringField>TEST STRING</stringField>
> </helloReturn>
> </soapenv:Body>
> </soapenv:Envelope>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira