问题一:WebService与方法重载 本文来自织梦
首先说明,WebService不支持方法重载。下面举例说明。 本文来自织梦
例如定义如下WebService接口:
本文来自织梦
2 public interface IHello {
3 @WebMethod
4 public String sayHello(int id);
织梦好,好织梦
5
6 @WebMethod
7 public String sayHello(String name);
8
9 @WebMethod
10 public String sayHello2(int id);
11
织梦好,好织梦
12 @WebMethod
13 public String sayHello2(int id, String name);
14 }
先来看方法sayHello(),如果客户端发送如下SOAP请求: dedecms.com
copyright dedecms
2 <soap:Body>
3 <sayHello> 织梦好,好织梦
4 <arg0>11</arg0>
5 </sayHello>
6 </soap:Body> 织梦好,好织梦
7 </soap:Envelope>
从SOAP请求我们可以看出客户端需要调用方法为sayHello(),所传递的参数为11,但是无法知道是整数的11,还是字符串"11",所以也就无法确定所调用的方法是哪一个。
接下来看一下sayHello2(),如果客户端传递的参数只包括一个id值,例如: 织梦好,好织梦
2 <soap:Body>
3 <sayHello2> 织梦内容管理系统
4 <arg0>1</arg0>
5 </sayHello2>
6 </soap:Body> dedecms.com
7 </soap:Envelope>
还是无法判断调用的是哪个方法,因为可以理解为客户端传递的第二个参数为空(Null)。 本文来自织梦
通常情况下,在发布一个含有重载方法的WebService时会有异常发生,或者当调用一个方法时,服务器端报告找不到相对应的方法。 织梦好,好织梦
复制地址和好友共享








