我们可以在Web服务类中实现方法重载吗?

我想在Java Web服务类中实现方法重载,如下所示:

public String myMethod(User user) { // My code } public String myMethod(User[] user) { for(int i=0; i<user.length; i++) { myMethod(user[i]); } } 

如果我将单个User对象转发到myMethod() ,它应该触发第一个方法,如果我发送一个User数组,它应该触发第二个方法。

在WSDL文件中,它只显示一个方法。 但是,如果我尝试为两个调用调用@WebMethod(operationName="") ,我将无法生成WSDL文件。

Web服务不允许操作重载。
它在WS-BP中明确禁止, WSDL 1.2也禁止它。
即使您发现堆栈有一些支持,我建议不要遵循这种方法。
重载是一个OO概念。 不要试图将它们应用于Service Oriented范例

重载Web服务方法并不困难。 至少使用Axis 1.4它非常简单。 如果服务中有两个重载方法,如下所示:

 public String myMethod(String firstName, String lastName) throws RemoteException public String myMethod(String name) throws RemoteException 

然后是这样的请求:

 http://localhost:8080/services/testService?method=myMethod&name= 

将调用第二种方法。

和这样的请求:

 http://localhost:8080//services/testService?method=myMethod&firstName=&lastName= 

将调用第一个方法。

决议由Axis完成。