Tuesday, May 29, 2018

javascript and web services WSDL

Leave a Comment

i want to call a web service using javascript. i have a form where i give some parameters (int) and want to get the result how can do it using javascript?

here are the WSDL files

<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://lapack.sws4hpsc.uth/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://lapack.sws4hpsc.uth/" name="DgesvSampleWsService"> <ns1:Policy xmlns:ns1="http://www.w3.org/ns/ws-policy" wsu:Id="DgesvSampleWsPortBinding_MTOM_Policy"> <ns1:ExactlyOne> <ns1:All> <ns2:OptimizedMimeSerialization xmlns:ns2="http://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization" ns1:Optional="true"/> </ns1:All> </ns1:ExactlyOne> </ns1:Policy> <types> <xsd:schema> <xsd:import namespace="http://lapack.sws4hpsc.uth/" schemaLocation="http://83.212.96.238:8080/DgesvSampleWs/DgesvSampleWsService?xsd=1"/> </xsd:schema> </types> <message name="_dgesv"> <part name="parameters" element="tns:_dgesv"/> </message> <message name="_dgesvResponse"> <part name="parameters" element="tns:_dgesvResponse"/> </message> <portType name="DgesvSampleWs"> <operation name="_dgesv"> <input message="tns:_dgesv"/> <output message="tns:_dgesvResponse"/> </operation> </portType> <binding name="DgesvSampleWsPortBinding" type="tns:DgesvSampleWs"> <ns3:PolicyReference xmlns:ns3="http://www.w3.org/ns/ws-policy" URI="#DgesvSampleWsPortBinding_MTOM_Policy"/> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="_dgesv"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="DgesvSampleWsService"> <port name="DgesvSampleWsPort" binding="tns:DgesvSampleWsPortBinding"> <soap:address location="http://83.212.96.238:8080/DgesvSampleWs/DgesvSampleWsService"/> </port> </service> </definitions> 

and the second one

<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://lapack.sws4hpsc.uth/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://lapack.sws4hpsc.uth/" name="DgtsvSampleWsService"> <ns1:Policy xmlns:ns1="http://www.w3.org/ns/ws-policy" wsu:Id="DgtsvSampleWsPortBinding_MTOM_Policy"> <ns1:ExactlyOne> <ns1:All> <ns2:OptimizedMimeSerialization xmlns:ns2="http://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization" ns1:Optional="true"/> </ns1:All> </ns1:ExactlyOne> </ns1:Policy> <types> <xsd:schema> <xsd:import namespace="http://lapack.sws4hpsc.uth/" schemaLocation="http://83.212.96.238:8080/DgtsvSampleWs/DgtsvSampleWsService?xsd=1"/> </xsd:schema> </types> <message name="_dgtsv"> <part name="parameters" element="tns:_dgtsv"/> </message> <message name="_dgtsvResponse"> <part name="parameters" element="tns:_dgtsvResponse"/> </message> <portType name="DgtsvSampleWs"> <operation name="_dgtsv"> <input message="tns:_dgtsv"/> <output message="tns:_dgtsvResponse"/> </operation> </portType> <binding name="DgtsvSampleWsPortBinding" type="tns:DgtsvSampleWs"> <ns3:PolicyReference xmlns:ns3="http://www.w3.org/ns/ws-policy" URI="#DgtsvSampleWsPortBinding_MTOM_Policy"/> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="_dgtsv"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="DgtsvSampleWsService"> <port name="DgtsvSampleWsPort" binding="tns:DgtsvSampleWsPortBinding"> <soap:address location="http://83.212.96.238:8080/DgtsvSampleWs/DgtsvSampleWsService"/> </port> </service> </definitions> 

3 Answers

Answers 1

  1. Create a SOAP request and invoke the caller. ref: Simplest SOAP example

  2. Get the response and parse the XML. ref: Parse XML using JavaScript

Answers 2

here you go, using jquery:

 $.ajax({     type: 'POST',     url: '/your-web-service-path.asmx/your-method-name',     data: {yourparam: 1}      dataType: 'json',     contentType: 'application/json; charset=utf-8',     success: function(r){},     error: function(e){}  }); 

Answers 3

Here a possible approach, assuming you put wsdl into a file request.wsdl and assuming that the remote server is accessible and have Access-Control-Allow-Origin: * header

//wsdl request var client = new XMLHttpRequest(); client.open('GET', 'request.wsdl'); client.onreadystatechange = function () {   var request = client.responseText;//here the wsdl          //SOAP request         var client2 = new XMLHttpRequest();         client2.open('POST', 'http://83.212.96.238:8080/DgesvSampleWs/DgesvSampleWsService', true);          client2.onreadystatechange = function () {           if (client2.readyState == 4) {             if (client2.status == 200) {               console.log(client.responseText);//here the response             }           }         }         client2.setRequestHeader('Content-Type', 'text/xml');         client2.send(request); }  client.send(); 

The idea is performing and ajax to call wsdl definitions and in it's callback, perform another ajax that call that you want to call. This domains http://83.212.96.238:808 it's not giving me response but I think the approach is valid.

If You Enjoyed This, Take 5 Seconds To Share It

0 comments:

Post a Comment