Enterprise Integration Zone is brought to you in partnership with:

Madhuka is Software Engineer and currently works on the Jaggery, UES, WSO2 Gadget Server team. He holds a B.Sc (Hons) degree in Information Technology from the Faculty of Information Madhuka is a DZone MVB and is not an employee of DZone and has posted 51 posts at DZone. You can read more from them at their website. View Full User Profile

Invoke a Web Service with Jaggery (with Payload)

03.20.2013
| 1895 views |
  • submit to reddit
A few days go I wrote a post on how to call web services from jaggery (JavaScript mode). But in that article we call for web services where there is no payload. It requires just one parameter to be added but lot of people have asked about it, so I'm writing a post about this as well.

I will be using https://localhost:9443/admin/services/AuthenticationAdmin?wsdl and the login action.

To get the payload for jaggery WS, just get WS body and exclude the body tag, then add a name space on the call root.

eg:

var payload = '<aut:login mlns:aut="http://authentication.services.core.carbon.wso2.org">

<aut:username>admin</aut:username>

<aut:password>admin</aut:password>

<aut:remoteAddress>localhost</aut:remoteAddress>

</aut:login>';

Here is full jaggery code this fill print true or false depending on your server login username or password

<%

function invokeWebServices() {

var ws = require("ws");
var version = new ws.WSRequest();
var options = new Array();
options.useSOAP = 1.2;
options.action = "urn:login";
var usrName = "admin";
var pass = "admin";

var payload = '<aut:login xmlns:aut="http://authentication.services.core.carbon.wso2.org"><aut:username>' + usrName + '</aut:username><aut:password>' + pass + '</aut:password><aut:remoteAddress>localhost</aut:remoteAddress></aut:login>';

var result;

try {

version.open(options,"https://localhost:9443/admin/services/AuthenticationAdmin", false);
version.send(payload);
result = version.responseE4X;

} catch (e) {

log.error(e.toString());
return e.toString();

}

return result;

}

print(invokeWebServices());

%>




Published at DZone with permission of Madhuka Udantha, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)