Per una chiamata di servizio Web utilizzando un WSDL, viene visualizzato l'errore Cannot find dispatch method for {http://ws.somecompany.com/services}ValidateUser
, cosa significa esattamente? Significa che non riesce a trovare ValidateUser
?WSDL Impossibile trovare il metodo di invio per
risposta
Ciò significa in genere che il framework SOAP non è stato in grado di trovare l'operazione che dovrebbe essere invocata tramite questa richiesta. Un framework SOAP tipicamente ispeziona il messaggio per trovare i puntatori su come indirizzare il messaggio all'operazione. I motivi di questo errore sono principalmente problemi di configurazione (diversi spazi dei nomi, diverse codifiche (RPC vs. doc/lit), utilizzo di WS-Addressing vs. SOAP semplice ecc.)
Ho avuto un problema simile e ho avuto difficoltà, googlando per 1 giorno. Ma è stato un semplice errore che invece di:
{http://ws.somecompany.com/services}ValidateUser
Dovrebbe essere
{http://ws.somecompany.com/services/}ValidateUser
non avevo controllato la mia WSDL chiaramente.
Sì, quelli sono cattivi. Inoltre, un errore comune sta trascurando la differenza tra http e https negli URI dello spazio dei nomi. – vanto
Nel mio caso ho risolto facendo in modo che il mio file di configurazione app.config o web.config a seconda del client abbia l'endpoint corretto. Ho sbagliato indirizzo nel mio endpoint. L'ho cambiato e ha funzionato bene.
Ho anche perso un giorno a questo problema, anche se con una causa radice diversa.
Nel nostro caso, due URL endpoint simili erano stati confusi nel file delle proprietà. Entrambi i servizi erano presenti e in esecuzione, ma i WSDL non corrispondevano, quindi invece di una ConnectionException, ricevevamo questa eccezione SOAPFault: "Impossibile trovare il metodo di invio".
Il mio cinquanta centesimo, ho ricevuto lo stesso messaggio di errore ma il mio caso era ancora diverso da tutto quanto sopra, quindi speranzoso potrebbe aiutare qualcuno.
Avevo il file .wsdl, che è diventato obsoleto a mia insaputa quando i colleghi sull'altro lato di ws hanno rinominato qualche elemento. Sfortunatamente, il cambiamento non era visibile quando ho confrontato .wsdl con loro perché il file .wsdl aveva un'importazione .xsd che in realtà conteneva un elemento rinominato. Dopo aver trovato il cambiamento, ho aggiornato il mio file .xsd e tada! l'errore è andato e ha funzionato.
Nel mio caso, la seguente eccezione stava gettando persino ho fornito tutti i parametri
SoapFault exception: [S:Client] Cannot find dispatch method for {}parameters in
Dopo sbattere la testa poche ore, solo l'aggiunta di un \ durante l'inizializzazione SoapClient ha risolto il problema.
Da:
$client = new SoapClient($soapURL);
A:
$client = new \SoapClient($soapURL);
Ho avuto lo stesso problema nel mio .NET, Nel mio caso l'impostazione url stesso di "http://x-xxx-xx-xx-01:8080//TestProject/testproject?wsdl" (URL fittizio) ha risolto il problema nel codice qui sotto.
Vb.Net
Dim rptGen as WSTestProject.testproject = Nothing
rptGen = New WSTestProject.testproject With {
.Url = "http://x-xxx-xx-xx-01:8080//TestProject/testproject?wsdl",
.Timeout = 1200000
}
Qui, WSTestProject è il namespace WebService e TestProject è il metodo web.
- 1. Impossibile trovare il metodo InsertOnSubmit()
- 2. Impossibile trovare il metodo commandLine()
- 3. Impossibile trovare il metodo CreateQuery()
- 4. Impossibile trovare il metodo onClick
- 5. Android Studio Impossibile trovare il metodo runProguard() per gli argomenti?
- 6. Errore WSDL: SOAP-ERROR: analisi WSDL: impossibile caricare da
- 7. boost :: regex vs std :: regex - impossibile trovare il metodo empty()?
- 8. L'elenco nella velocity macro, impossibile trovare il metodo contiene
- 9. Flourinefx: impossibile trovare un metodo adatto con il nome
- 10. Apache Commons Codec con Android: impossibile trovare il metodo
- 11. Impossibile trovare il metodo nel contesto padre o antenato
- 12. Impossibile trovare un metodo onClick (View) nell'attività
- 13. Sincronizzazione graduale non riuscita: impossibile trovare il metodo
- 14. Android Recycle View LogCat: Impossibile trovare il metodo
- 15. Impossibile trovare il database
- 16. Impossibile trovare il frammento per tag
- 17. java.util.MissingResourceException: Impossibile trovare il bundle per il nome di base
- 18. Impossibile trovare Log4jConfigListener - Impossibile avviare il contesto
- 19. Impossibile creare JAXBContext creare la mia wsdl
- 20. Impossibile trovare il modulo "mscorwks.dll"
- 21. impossibile trovare il modulo specificato 0x8007007E
- 22. Impossibile trovare il modulo 'browserify'
- 23. Impossibile trovare il modulo 'glob'
- 24. Impossibile trovare il modulo 'winston'
- 25. Errore "impossibile trovare il simbolo"
- 26. Impossibile trovare il file gitconfig
- 27. Impossibile trovare il file dacpac?
- 28. NHibernate - Impossibile trovare il file di hibernate.cfg.xml
- 29. Impossibile trovare il modulo 'shelljs'
- 30. Impossibile trovare il simbolo NOTIFICATION_SERVICE?
Se si utilizza Visual Studio, ecco una soluzione rapida.Fare clic con il pulsante destro del mouse sul servizio Web nella cartella Riferimenti Web in Esplora soluzioni, selezionare Aggiorna servizio Web. Attendere VS per completare il processo e si è fatto –
Nel mio caso il problema era che il '' si fa riferimento nel '' del '', che viene fatto riferimento nel '' del '' non ha avuto lo stesso ** spazio dei nomi ** come ''. Dovrebbe anche avere lo stesso nome per evitare di avvolgere i parametri di input. –
msa