You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Clóvis Wichoski <cw...@gmail.com> on 2010/11/29 19:25:39 UTC
Re: [axis2] Using custom wsdl file in axis2 - Problem when using
instead of in wsdl
Hi,
you must use <xs:sequence> then <xs:choice> to do what you need, something
like this:
<xs:element name="multiply">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:choice>
<xs:element minOccurs="0" name="a"
nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="b"
nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="c"
nillable="true" type="xs:string"/>
<xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
On Mon, Nov 29, 2010 at 3:18 AM, Narendra Kadali <
narendra_kadali@hotmail.com> wrote:
> Hi All,
>
> I am using axis2 for my webservices. Today when i tried to use my own wsdl
> file instead of axis2 default generated i observer unexpected behaviour.Here
> goes the details.
> This is the original wsdl file part.
> <xs:element name="multiply">
> <xs:complexType>
> <xs:sequence>
> <xs:element minOccurs="0" name="a" nillable="true"
> type="xs:string"/>
> <xs:element minOccurs="0" name="b" nillable="true"
> type="xs:string"/>
> <xs:element minOccurs="0" name="c" nillable="true"
> type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> I changed <xs:sequence> to <xs:all> so that i can send elements in
> any order in soap request.Below is the changed one.
> <xs:element name="multiply">
> <xs:complexType>
> <xs:all>
> <xs:element minOccurs="0" name="a" nillable="true"
> type="xs:string"/>
> <xs:element minOccurs="0" name="b" nillable="true"
> type="xs:string"/>
> <xs:element minOccurs="0" name="c" nillable="true"
> type="xs:string"/>
> </xs:all>
> </xs:complexType>
> </xs:element>
> When I am executing this one I am getting value for a is blanck and for b
> and c null.
> Below is the soap request i am sending to server.
>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:axis="http://axis.apache.org/axis2">
> <soapenv:Header/>
> <soapenv:Body>
> <axis:multiply>
> <!--You may enter the following 3 items in any order-->
> <!--Optional:-->
> <axis:a>a</axis:a>
> <!--Optional:-->
> <axis:b>b</axis:b>
> <!--Optional:-->
> <axis:c>c</axis:c>
> </axis:multiply>
> </soapenv:Body>
> </soapenv:Envelope>
>
> Here is the code snippet i am using at server side
> public String multiply(String a, String b, String c)
> throws Exception
> {
> LogHelper.info(logger, "Begin - Multiply");
> if (a.trim().equals(""))
> LogHelper.info(logger, "value fo a is a=\"\"");
> if (b == null)
> LogHelper.info(logger, "value fo b is null");
> if (c == null)
> LogHelper.info(logger, "value fo c is null");
>
> return "Hellow World";
> }
> on the console for loggers Iam getting below out put:
> 19:47:20,227 INFO [STDOUT] INFO [SampleWebService] Begin
> - Multiply
> 19:47:20,227 INFO [STDOUT] INFO [SampleWebService] value
> fo a is a=""
> 19:47:20,227 INFO [STDOUT] INFO [SampleWebService] value
> fo b is null
> 19:47:20,228 INFO [STDOUT] INFO [SampleWebService] value
> fo c is null
> Can any one tell why i am receivng values as blanck or null even i am
> supplying values.
>
> Thanks,
> Narendra
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
> For additional commands, e-mail: java-user-help@axis.apache.org
>