The moose likes Web Services and the fly likes problem with String [] in axis 1.3 and .net client Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Web Services
Bookmark "problem with String [] in axis 1.3 and .net client" Watch "problem with String [] in axis 1.3 and .net client" New topic

problem with String [] in axis 1.3 and .net client

jayalal jayarathna

Joined: May 17, 2007
Posts: 4
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 {
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 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:
faultCode: {}Server.userException
faultString: java.lang.IllegalArgumentException: array element type mismatch
{}stackTrace:java.lang.IllegalArgumentException: array element type mismatch
at java.lang.reflect.Array.set(Native Method)
at org.apache.axis.utils.BeanPropertyDescriptor.set(

WSDL as follows

<import namespace=""/>

<complexType name="ArrayOf_soapenc_string">


<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/>

<complexType name="SmsRequestDto">
<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"/>

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;


This is the C# request which is not working,(shown in tcp monitor)

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="" xmlns:soapenc="" xmlns:tns="" xmlns:types="" xmlns:xsi="" xmlns:xsd="">
<soap:Body soap:encodingStyle="">
<tns:sendSmsMessage><in0 href="#id1" />
<q1:SmsRequestDto id="id1" xsi:type="q1:SmsRequestDto" xmlns:q1="">
<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" />

<soapenc:Array id="id2" soapenc:arrayType="xsd:string[1]">

but for following Axis 1.3 client request it works fine

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="" xmlns:xsd="" xmlns:xsi=""><soapenv:Body>
<ns1:sendSmsMessage soapenv:encodingStyle="" xmlns:ns1="">
<in0 href="#id0"/>
<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="" xsi:type="ns2:SmsRequestDto" xmlns:soapenc="" xmlns:ns2="">
<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="">123456789</ns3:item>
<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 id="id1" soapenc:root="0" soapenv:encodingStyle="" xsi:type="xsd:long" xmlns:soapenc="">

Please help me. Thank you,

I agree. Here's the link:
subject: problem with String [] in axis 1.3 and .net client
It's not a secret anymore!