Axis2 does not support for SOAP encoding hence you can't use arrayType attribute. As previous post mentioned you have to edit WSDL and use XMLSchema to specify your array constrains.
Thanks ! On Wed, Jan 4, 2012 at 12:32 AM, Raghu Upadhyayula < rupadhyay...@responsys.com> wrote: > I guess for that you have to modify your WSDL as follows and regenerate > the code from wsdl.**** > > ** ** > > <xs:element name="getArray">**** > > <xs:complexType>**** > > <xs:sequence>**** > > <xs:element *maxOccurs="4"* minOccurs="0" name="result" > nillable="true" type="xs:string" /> **** > > </xs:sequence>**** > > </xs:complexType>**** > > </xs:element>**** > > ** ** > > ** ** > > Thanks**** > > Raghu**** > > [image: Description: > cid:B80A849F-8953-4496-BB5B-34FFFD4B2394]<http://www.responsys.com/> > **** > > ** ** > > *From:* Rui Oliveira [mailto:racoqs...@gmail.com] > *Sent:* Tuesday, January 03, 2012 10:44 AM > *To:* java-user@axis.apache.org > *Subject:* Re: Array String parameter on SOAP Web Service**** > > ** ** > > Raghu > > Thanks! That worked it returned me 4 (the length of the array with all the > elements). > > However, this only addresses part of the problem. > > I would like to reserve a array with a fixed size like what was done with > my previous request example with: > > arrayType="xsd:string[4]" > > > For instance, i want the array to reserve 4 elements for the array and not > more. > > How i can do that? > > Best regards > > **** > > On Tue, Jan 3, 2012 at 6:26 PM, Raghu Upadhyayula < > rupadhyay...@responsys.com> wrote:**** > > Hi Rui,**** > > **** > > Try this and see ….**** > > **** > > <soapenv:Envelope xmlns:soapenv= > "http://schemas.xmlsoap.org/soap/envelope/"<http://schemas.xmlsoap.org/soap/envelope/>xmlns:myw= > "http://MyWebService.dei.uc.pt" <http://mywebservice.dei.uc.pt/>> > <soapenv:Header/> > <soapenv:Body> > <myw:getArray> **** > > <myw:result>Egypt</myw:result> > <myw:result>Amsterdam</myw:result> > <myw:result>Lisbon</myw:result> > <myw:result>Paris</myw:result> **** > > </myw:getArray> > </soapenv:Body> > </soapenv:Envelope> > > **** > > **** > > **** > > Thanks**** > > Raghu**** > > **** > > **** > > *From:* Rui Oliveira [mailto:racoqs...@gmail.com] > *Sent:* Tuesday, January 03, 2012 9:46 AM > *To:* java-user@axis.apache.org**** > > > *Subject:* Array String parameter on SOAP Web Service**** > > **** > > Sorry about bumping this thread but i really need a solution, or at least > the confirmation that i'm doing things right and this is a limitation of > Apache Axis2.**** > > ---------- Forwarded message ---------- > From: *Rui Oliveira* <racoqs...@gmail.com> > Date: Thu, Dec 29, 2011 at 4:05 PM > Subject: Array String parameter on SOAP Web Service > To: java-user@axis.apache.org > > > Hi > > I'm new to Axis2, and i've developed a soap web service using Eclipse > Helios integration with Axis2 and tomcat. I've tried searching the mailing > list but no solution seemed to address my problem. This is why i send this > email since i don't know what to do anymore! :( > > I'm trying to pass a string of array to the following web service > function: > > package pt.uc.dei.MyWebService; > > public class MyWebService { > //other functions ignored > (...) > > public int getArray(String[]result) { > return (result.length); > } > } > > The WSDL generated is attached with this email (it has definitions of > other operations but getArray is the one with the problem) > > > However when i use SOAPUI to generate a client. The default request that > SoapUI generate is: > > <soapenv:Envelope xmlns:soapenv= > "http://schemas.xmlsoap.org/soap/envelope/"<http://schemas.xmlsoap.org/soap/envelope/>xmlns:myw= > "http://MyWebService.dei.uc.pt" <http://mywebservice.dei.uc.pt/>> > <soapenv:Header/> > <soapenv:Body> > <myw:getArray> > <myw:result>?</myw:result> > </myw:getArray> > </soapenv:Body> > </soapenv:Envelope> > > > I've edited the soap envelop tag, and the request content inside result > tag it in order to support an array like this: > > <soapenv:Envelope xmlns:soapenv= > "http://schemas.xmlsoap.org/soap/envelope/"<http://schemas.xmlsoap.org/soap/envelope/> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"<http://www.w3.org/2001/XMLSchema>xmlns:xsi= > "http://www.w3.org/2001/XMLSchema-instance"<http://www.w3.org/2001/XMLSchema-instance>xmlns:SOAP-ENC= > "http://schemas.xmlsoap.org/soap/encoding/"<http://schemas.xmlsoap.org/soap/encoding/>xmlns:myw= > "http://MyWebService.dei.uc.pt" <http://mywebservice.dei.uc.pt/>> > <soapenv:Header/> > <soapenv:Body> > <myw:getArray> > <myw:result> > <param SOAP-ENC:arrayType="xsd:string[4]" > > <item xsi:type="xsd:string">Egypt</item> > <item xsi:type="xsd:string">Amsterdam</item> > <item xsi:type="xsd:string">Lisbon</item> > <item xsi:type="xsd:string">Paris</item> > </param> > </myw:result> > </myw:getArray> > </soapenv:Body> > </soapenv:Envelope> > > However the response i get from the getArray operation is : > > <soapenv:Envelope xmlns:soapenv= > "http://schemas.xmlsoap.org/soap/envelope/"<http://schemas.xmlsoap.org/soap/envelope/>> > > <soapenv:Body> > <ns:getArrayResponse > xmlns:ns="http://MyWebService.dei.uc.pt"<http://mywebservice.dei.uc.pt/>> > > <ns:return>1</ns:return> > </ns:getArrayResponse> > </soapenv:Body> > </soapenv:Envelope> > > > It seems like the array of strings is being converted to one dimensional > empty Array, and i'm not receiving the strings inside the soap array from > the request. > > Can anyone provide me what is causing this and if my request is being > built correctly? > > Best Regards**** > > **** > > ** ** > -- Sagara Gunathunga Blog - http://ssagara.blogspot.com Web - http://people.apache.org/~sagara/ LinkedIn - http://www.linkedin.com/in/ssagara
<<image001.png>>