Saludos estimados gurus del Web
Mi pregunta esta vez va dirigida a akellos que sepan sobre el famosisimo WebService
Resulta que tengo un WSDL de .NET y me da la siguiente informacion:
<wsdl:binding name="Service1Soap" type="tns:Service1Soap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> - <wsdl:operation name="HelloWorld"> <soap:operation soapAction="http://tempuri.org/HelloWorld" style="document" /> - <wsdl:input> <soap:body use="literal" /> </wsdl:input> - <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> De tal manera que al hacer la peticion por medio de SOAP genero el siguiente encabezado:
POST /WSToJava/default.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length:
length SOAPAction: "http://tempuri.org/HelloWorld"
y la respuesta es exitosa.
Sin embargo tengo un WebService generado por Java (Sun App. Server 8.1) con NetBeans 4.1 y ke me da la siguiente informacion:
<binding name="myWebServiceSEIBinding" type="tns:myWebServiceSEI"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> - <operation name="get_HelloUser"> <soap:operation soapAction="" /> - <input> <soap:body use="literal" /> </input> - <output> <soap:body use="literal" /> </output> </operation> </binding> y al hacer el header para el SOAP request lo creo de la siguiente manera:
POST /myWebApplication/myWebService HTTP/1.1
Host: localhost;
Content-Type: text/xml; charset=utf-8
Content-Length:
length SOAPAction: "Que debo poner aqui??"
Basicamente mis dudas son:
1.- ¿Como especificar el SOAPAction o de donde obtenerlo si en la definicion del WS no viene especificada?
2.- ¿Como agregar el namespace en el body del SOAP si es ke lo lleva?
<?xml version="1.0" encoding="UTF-8" ?> - <env:Envelope env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <env:Header /> - <env:Body> - <get_HelloUser xmlns:Aqui que prefijo usar?="Que debe ir aqui???"> <String_1 xsi:type="xsd:string">Mi valor de cadena uno</String_1> <String_2 xsi:type="xsd:string">Mi valor de cadena dos</String_2> </get_HelloUser> </env:Body> </env:Envelope> Alguien que me pueda ayudar por favor, o indicarme ke estoy haciendo mal. agradeceria cualkier sugerencia.
NOTA: para conectarme utilizo un Socket de java.net y una InetAddress tambien de java.net, envio el SOAP document y los headers con un java.io.BufferedReader y obtengo como respuesta en un java.io.BufferedWriter
SALUDOS