Eliminar el espacio de nombres de la solicitud SOAP
Importé un WSDL y lo uso para enviar una solicitud SOAP. Se parece a esto:
<?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...
El problema es elxmlns="urn:xx.WSDL.xxxxxWebService"
parte en el elemento Calcular. El servicio web no puede aceptar esto. Al servicio web no le gustan los espacios de nombres como este ...
UtilizandoSoapUI Encontré que esta solicitud funciona bien:
<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...
Entonces, ¿cómo cambio la solicitud de la primera a la segunda versión? (¡Sin usar trucos sucios!)
(La reimportación no es un problema si esto daría como resultado el formato de solicitud adecuado).
De nuevo: ¡no se permiten trucos sucios, como hackear la secuencia de solicitud para modificarla!
Y aunque no lo he probado por completo, parece que C # / VS2010 y Delphi 2010 tampoco pueden usar el servicio web al que estoy intentando llamar. Un servicio web que parece estar escrito en Java.SoapUI está escrito en Java, por lo tanto, tenemos un cliente Java que habla con un servicio Java, que parece funcionar bien. ¿Pero algún otro cliente?
De todos modos, es hora de agregar dos etiquetas más: "Java", ya que es un servicio de Java, y "vs2010" porque .NET tampoco le gusta este servicio.
Y estaba a punto de escribir un contenedor alrededor de este servicio en .NET, con la esperanza de que funcionara ... No funciona. Entonces este es un defecto muy serio, posiblemente un defecto de Java ...