Supponiamo che io abbia i seguenti metodi dichiarati nel mio servizio web:Come posso sovraccaricare il metodo nel servizio web Java?
@WebMethod()
public Long addNewApplication(String applicationName) throws ServiceManagerException {
// implementation
}
@WebMethod()
public Long addNewApplication(String applicationName, ApplicationState status) throws ServiceManagerException {
// implementation
}
Il problema è che al di sopra non funziona, ottengo la seguente eccezione:
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)
Se rinominare i metodi in modo da avrà nomi diversi, tutto funziona. È possibile avere metodi sovraccaricati nel servizio Web? Se sì, allora come?
Heh ... Attualmente ho dovuto rinominare i metodi per rimuovere l'overload. Ma non è una soluzione molto elegante. – uthark
@uthark: nel contesto di WSDL, che non supporta il sovraccarico, si potrebbe obiettare che in realtà è la soluzione più elegante. –
@Fabian Sì, in realtà prima di pubblicare una domanda ho rimosso il sovraccarico. Ma volevo sapere se è possibile sovraccaricare. – uthark