axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Narendra Kadali <narendra_kad...@hotmail.com>
Subject [axis2] Using custom wsdl file in axis2 - Problem when using <xs:all> instead of <xs:sequence> in wsdl
Date Mon, 29 Nov 2010 05:18:32 GMT

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 		 	   		  
Mime
View raw message