axis开发webservice:WebService开发常见问题

        任何问题都需要从它根源说起所以简单说下WebService工作原理客户端个WebService思路方法首先需要将思路方法名和需要传递参数包装成XML(也就是SOAP包)通常是通过HTTP传递到服务器端然后服务器端解析这段XML得到被思路方法名称和传递来参数进而WebService例子相应思路方法思路方法执行完成的后将返回结果再包装成XML(SOAP响应)发送到客户端客户端解析这段XML进而得到返回结果这里关键地方在于中间加入了对象和XML相互转换过程   问题:WebService和思路方法重载

  首先介绍说明WebService不支持思路方法重载下面举例介绍说明

  例如定义如下WebService接口:

1 @WebService
2 public erface IHello {
3         @WebMethod
4         public String sayHello( id);
5
6         @WebMethod
7         public String sayHello(String name);
8         
9         @WebMethod
10         public String sayHello2( id);
11
12         @WebMethod
13         public String sayHello2( id, String name);
14     }

  先来看思路方法sayHello如果客户端发送如下SOAP请求:

 

1 <soap:Envelope>
2         <soap:Body>
3             <sayHello>
4                 <arg0>11</arg0>
5             </sayHello>
6         </soap:Body>
7     </soap:Envelope>

  从SOAP请求我们可以看出客户端需要思路方法为sayHello所传递参数为11但是无法知道是整数11还是串"11"所以也就无法确定所思路方法是哪

  接下来看下sayHello2如果客户端传递参数只包括个id值例如:

1 <soap:Envelope>
2         <soap:Body>
3             <sayHello2>
4                 <arg0>1</arg0>
5             </sayHello2>
6         </soap:Body>
7     </soap:Envelope>

  还是无法判断是哪个思路方法可以理解为客户端传递第 2个参数为空(Null)

  通常情况下在发布个含有重载思路方法WebService时会有异常发生或者当个思路方法时服务器端报告找不到相对应思路方法

TAG: web Web Services


="xspace-totlerecord">3="xspace-totlepages">1/3="xspace-current">123>
Tags:  webservice webservice pbwebservice开发 axis开发webservice

延伸阅读

最新评论

发表评论