| Author |
problem with String [] in axis 1.3 and .net client
|
jayalal jayarathna
Greenhorn
Joined: May 17, 2007
Posts: 4
|
|
Hi, I have a web service developed on Axis 1.3, and it has following method. SendTaskResponseDto sendSmsMessage(SmsRequestDto in0) SmsRequestDto has an string array public class SmsRequestDto implements java.io.Serializable { private java.lang.Long projectId; private java.lang.String user; private java.lang.String message; private java.lang.String[] msisdn; private java.lang.Integer applicationId; ......... when I try to call SendTaskResponseDto sendSmsMessage(SmsRequestDto in0) through C#.net client it gives following exception at server 13 Oct 2008 11:03:00,015 ERROR BeanPropertyTarget - Could not convert [Ljava.lang.String; to bean field 'msisdn[0]', type java.lang.String 13 Oct 2008 11:03:00,028 INFO EXCEPTIONS - AxisFault: AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.lang.IllegalArgumentException: array element type mismatch faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:java.lang.IllegalArgumentException: array element type mismatch at java.lang.reflect.Array.set(Native Method) at org.apache.axis.utils.BeanPropertyDescriptor.set(BeanPropertyDescriptor.java:195) WSDL as follows <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/> - <complexType name="ArrayOf_soapenc_string"> - <complexContent> - <restriction base="soapenc:Array"> <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/> </restriction> </complexContent> </complexType> <complexType name="SmsRequestDto"> <sequence> <element name="projectId" nillable="true" type="xsd:long"/> <element name="user" nillable="true" type="xsd:string"/> <element name="message" nillable="true" type="xsd:string"/> <element name="msisdn" nillable="true" type="impl:ArrayOf_soapenc_string"/> <element name="applicationId" nillable="true" type="xsd:int"/> <element name="accountExternalId" nillable="true" type="xsd:int"/> <element name="accountId" nillable="true" type="xsd:int"/> <element name="originatingAddress" nillable="true" type="xsd:string"/> <element name="originatingAddressType" nillable="true" type="xsd:int"/> </sequence> </complexType> c# client code static void Main(string[] args) { lh.CPSWebServiceService service = new ConsoleApplication1.lh.CPSWebServiceService(); lh.SmsRequestDto request = new ConsoleApplication1.lh.SmsRequestDto(); string[] msisdn = new string[1]; msisdn[0] = "123456"; // msisdn[1] = "456"; request.msisdn = msisdn; service.sendSmsMessage(request); } This is the C# request which is not working,(shown in tcp monitor) <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://external.soap.service.cps.moota.com" xmlns:types="http://external.soap.service.cps.moota.com/encodedTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <tns:sendSmsMessage><in0 href="#id1" /> </tns:sendSmsMessage> <q1:SmsRequestDto id="id1" xsi:type="q1:SmsRequestDto" xmlns:q1="http://dto.service.cps.moota.com"> <projectId xsi:nil="true" /><user xsi:nil="true" /> <message xsi:nil="true" /> <msisdn href="#id2" /> <applicationId xsi:nil="true" /> <accountExternalId xsi:nil="true" /> <accountId xsi:nil="true" /> <originatingAddress xsi:nil="true" /> <originatingAddressType xsi:nil="true" /> </q1:SmsRequestDto> <soapenc:Array id="id2" soapenc:arrayType="xsd:string[1]"> <Item>123456</Item> </soapenc:Array> </soap:Body> </soap:Envelope> but for following Axis 1.3 client request it works fine <?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> <ns1:sendSmsMessage soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://soap.service.cps.moota.com"> <in0 href="#id0"/> </ns1:sendSmsMessage> <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:SmsRequestDto" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://dto.service.cps.moota.com"> <projectId href="#id1"/> <user xsi:type="xsd:string" xsi:nil="true"/> <message xsi:type="xsd:string" xsi:nil="true"/> <msisdn soapenc:arrayType="xsd:string[1]" xsi:type="soapenc:Array"> <ns3:item xsi:type="xsd:string" xmlns:ns3="http://webservice.clientprovisioning.moota.com">123456789</ns3:item> </msisdn> <applicationId xsi:type="xsd:int" xsi:nil="true"/> <accountExternalId xsi:type="xsd:int" xsi:nil="true"/> <accountId xsi:type="xsd:int" xsi:nil="true"/> <originatingAddress xsi:type="xsd:string" xsi:nil="true"/> <originatingAddressType xsi:type="xsd:int" xsi:nil="true"/> </multiRef> <multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:long" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 10</multiRef> </soapenv:Body></soapenv:Envelope> Please help me. Thank you, Jayalal
|
 |
 |
|
|
subject: problem with String [] in axis 1.3 and .net client
|
|
|