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

Java 我们可以在web服务类中实现方法重载吗?,java,wsdl,jax-ws,axis2,Java,Wsdl,Jax Ws,Axis2,我想在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]); } } 如果我将单个用户对象转发给myMethod,它将触发第一个方法,如果我发送一个用户数组,它将触

我想在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]);
    }
}
如果我将单个用户对象转发给myMethod,它将触发第一个方法,如果我发送一个用户数组,它将触发第二个方法

在WSDL文件中,它只显示一个方法。但是,如果我尝试为这两个调用调用@WebMethodoperationName=,则无法生成WSDL文件

web服务不允许操作重载。 这是明确禁止的,也不允许它。 即使您发现一个堆栈对此有一些支持,我也建议不要采用这种方法。
重载是一个面向对象的概念。不要试图将它们应用于面向服务的范例

重载web服务方法并不困难。对于Axis1.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=<name> 
将调用第二个方法

像这样的请求:

http://localhost:8080//services/testService?method=myMethod&firstName=<first_name>&lastName=<last_name>
将调用第一个方法


解决方案是由Axis完成的。

我认为不可能让Web服务过载,即使是这样,也肯定不是好做法+1,好信息。虽然我和Axis共事了很长一段时间,但我不知道Axis能做到这一点。我绝不会这样做,因为这不是一种洁净的web服务设计,但我很高兴知道我是否遇到过必须实现这种东西的情况。重载不是一个OO概念,它与OO没有任何关系,例如,C语言是一种过程/结构化语言,它提供函数重载。