Supongamos que tengo los siguientes métodos declarados en mi servicio web:¿Cómo puedo sobrecargar el método en el servicio web Java?
@WebMethod()
public Long addNewApplication(String applicationName) throws ServiceManagerException {
// implementation
}
@WebMethod()
public Long addNewApplication(String applicationName, ApplicationState status) throws ServiceManagerException {
// implementation
}
El problema es que esta solución no funciona, me sale el siguiente excepción:
org.springframework.remoting.jaxws.JaxWsSoapFaultException: Cannot find dispatch method for Request=[SOAPAction="",Payload={http://example.org/applicationManager}addNewApplication]; nested exception is javax.xml.ws.soap.SOAPFaultException: Cannot find dispatch method for Request=[SOAPAction="",Payload={http://example.org/applicationManager}addNewApplication]
at org.springframework.remoting.jaxws.JaxWsPortClientInterceptor.doInvoke(JaxWsPortClientInterceptor.java:503)
at org.springframework.remoting.jaxws.JaxWsPortClientInterceptor.invoke(JaxWsPortClientInterceptor.java:487)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy123.addNewApplication(Unknown Source)
Si cambiar el nombre de los métodos para que tendrá diferentes nombres, todo funciona. ¿Es posible tener métodos sobrecargados en el servicio web? ¿Si es así, entonces cómo?
Heh ... Actualmente me veo obligado a cambiar el nombre de los métodos para eliminar la sobrecarga. Pero no es una solución muy elegante. – uthark
@uthark: en el contexto de WSDL, que no admite la sobrecarga, se podría argumentar que en realidad es la solución más elegante. –
@Fabian Sí, en realidad antes de publicar la pregunta, he eliminado la sobrecarga. Pero quería saber si es posible sobrecargar. – uthark