Hello !
Guys, could you please comment on this?
I'm stuck on this issue :(
Thanks in advance.
Monday, July 24, 2006, 11:47:53 PM, you wrote:
ES> Hello !
ES> I created a simple service with the following method:
ES> public String[] testStringArrayWithNulls( String[] sarray )
ES> {
ES> return sarray;
ES> }
ES> Then I generated WSDL file (Java2WSDL) and got the following types in
ES> it:
ES> <xs:element name="testStringArrayWithNulls">
ES> <xs:complexType>
ES> <xs:sequence>
ES> <xs:element minOccurs="0" type="xs:string"
ES> name="sarray" maxOccurs="unbounded"/>
ES> </xs:sequence>
ES> </xs:complexType>
ES> </xs:element>
ES> <xs:element name="testStringArrayWithNullsResponse">
ES> <xs:complexType>
ES> <xs:sequence>
ES> <xs:element minOccurs="0" type="xs:string"
ES> name="return" maxOccurs="unbounded"/>
ES> </xs:sequence>
ES> </xs:complexType>
ES> </xs:element>
ES> Then I added nillable="true" attribute manually to each item (to make .NET
send
ES> nulls in SOAP), so the types are:
ES> <xs:element name="testStringArrayWithNulls">
ES> <xs:complexType>
ES> <xs:sequence>
ES> <xs:element minOccurs="0" type="xs:string"
ES> name="sarray" maxOccurs="unbounded" nillable="true"/>
ES> </xs:sequence>
ES> </xs:complexType>
ES> </xs:element>
ES> <xs:element name="testStringArrayWithNullsResponse">
ES> <xs:complexType>
ES> <xs:sequence>
ES> <xs:element minOccurs="0" type="xs:string"
ES> name="return" maxOccurs="unbounded" nillable="true"/>
ES> </xs:sequence>
ES> </xs:complexType>
ES> </xs:element>
ES> Then I deployed this service and tested it with a simple .NET client
ES> that sends the following array (the operation is document/literal):
ES> [null, "str", null, "str", null]
ES> The SOAP message from .NET is as follows:
ES> <?xml version='1.0' encoding='utf-8'?>
ES> <soap:Envelope
ES> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
ES> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
ES> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
ES> <soap:Body>
ES> <testStringArrayWithNulls xmlns="http://org.apache.axis2/xsd">
ES> <sarray xsi:nil="true" />
ES> <sarray>str</sarray>
ES> <sarray xsi:nil="true" />
ES> <sarray>str</sarray>
ES> <sarray xsi:nil="true" />
ES> </testStringArrayWithNulls>
ES> </soap:Body>
ES> </soap:Envelope>
ES> But for some reason my service gets:
ES> ["", "str", "", "str", ""]
ES> All null values in the array are replaced with empty strings :(
ES> So, I have two questions:
ES> 1. Why Axis replaces nulls with empty strings when the nulls are
ES> marked with xsi:nil="true" attribute in SOAP message? Is this a
ES> bug?
ES> 2. Why Java2WSDL doesn't add nillable="true" to Object array elements
ES> automatically?
ES> ------------------------------------
ES> Best regards,
ES> Egor Samarkhanov ([EMAIL PROTECTED])
ES> Actimind, Inc.
ES> ---------------------------------------------------------------------
ES> To unsubscribe, e-mail: [EMAIL PROTECTED]
ES> For additional commands, e-mail: [EMAIL PROTECTED]
------------------------------------
Best regards,
Egor Samarkhanov ([EMAIL PROTECTED])
Actimind, Inc.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]