Ho importato un WSDL e lo uso per inviare una richiesta SOAP. Ecco come si presenta:Rimozione dello spazio dei nomi dalla richiesta SOAP
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<Calculate xmlns="urn:xx.WSDL.xxxxxWebService">
<ContractdocumentIn>
<AL>
...More XML...
Il problema è la parte xmlns="urn:xx.WSDL.xxxxxWebService"
nell'elemento Calcola. Il servizio web non può accettarlo. Il servizio web non piace namespace come questo ...
Utilizzando SoapUI Ho trovato questa richiesta a funzionare bene:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:col="http://example.com.service.xxx/">
<SOAP-ENV:Body>
<col:Calculate>
<ContractdocumentIn>
<AL>
...More XML...
Allora, come faccio a cambiare la richiesta dalla prima alla seconda versione? (Senza usare trucchi sporchi!)
(Re-importazione non è un problema se questo comporterebbe il formato della richiesta corretta.)
ancora: No trucchi sporchi permessi, come l'hacking il flusso di richiesta di modificarlo !
E mentre non ho completamente testato, sembra che C#/VS2010 e Delphi il 2010 sono anche in grado di utilizzare il servizio web che sto cercando di chiamare. Un servizio web che sembra essere scritto in Java. SoapUI sembra essere scritto in Java, quindi abbiamo un client Java che parla con un servizio Java, che sembra funzionare bene. Ma qualsiasi altro cliente?
Ad ogni modo, è ora di aggiungere altri due tag: "Java", poiché è un servizio Java e "vs2010" perché anche a .NET questo servizio non piace.
E stavo per scrivere un wrapper su questo servizio in .NET, sperando che funzionasse ... Non è così. Quindi questo è un difetto molto serio, forse un difetto Java ...
Buona fortuna. Ho dovuto ricorrere a trucchi sporchi. –
Sì, lo so. Posso probabilmente risolverlo usando trucchi sporchi, ma la gestione non è d'accordo. Quindi il codice deve essere pulito. –
Il codice SOAP fornisce agganci per esaminare l'XML che viene inviato e per modificarlo se necessario. Supporta la manipolazione manuale in modo esplicito. E il codice sarebbe lì - niente di "sporco" sulla manipolazione post-build. Potrebbe non essere bello come automatico, ma nessuno dovrebbe preoccuparsene. – mj2008