This is bug in Axis2 , so I will fix that soon . Egor Samarkhanov wrote:
>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] > > > > > -- Thanks, Deepal ................................................................ ~Future is Open~ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]