varios una sobreescritura sobrecargar sobrecarga polimorfismo metodos metodo estatico conclusion clase java wsdl jax-ws axis2

una - sobreescritura de metodos en java



¿Podemos implementar la sobrecarga de métodos en la clase de servicio web? (2)

Me gustaría implementar la sobrecarga de métodos en la clase de servicio web Java de la siguiente manera:

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

Si myMethod() un solo objeto de User a myMethod() , debería desencadenar el primer método y si envío un conjunto de User s, debería desencadenar el segundo método.

En el archivo WSDL, muestra solo un método. Sin embargo, si intento llamar a @WebMethod(operationName="") para ambas llamadas, no puedo generar el archivo WSDL.


La sobrecarga de operación no está permitida para los servicios web.
Está explícitamente prohibido en WS-BP y WSDL 1.2 también lo prohíbe.
Incluso si encuentras una pila que tiene algo de apoyo para esto, recomendaría no seguir este enfoque.
La sobrecarga es un concepto OO . No intente aplicarlos al paradigma Service Oriented al Service Oriented


Sobrecargar los métodos de servicio web no es difícil. Con Axis 1.4, al menos, es bastante simple. Si hay dos métodos sobrecargados en el servicio, como a continuación:

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

Entonces una solicitud como esta:

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

invocará el segundo método.

Y una solicitud como esta:

http://localhost:8080//services/testService?method=myMethod&firstName=<first_name>&lastName=<last_name>

invocará el primer método.

La resolución es hecha por Axis.