Skip to content

SOAP - Server

Steps

  1. Create a project soap.
  2. Create a JavaScript service with the name soap-server.js.
  3. Enter the following content:
var soap = require("net/v4/soap");
var request = require("http/v4/request");
var response = require("http/v4/response");
var xml = require("utils/v4/xml");

// Parse SOAP request
var message = soap.parseRequest();

var requestPart = message.getPart();
var requestEnvelope = requestPart.getEnvelope();
var requestBody = requestEnvelope.getBody();
var childElements = requestBody.getChildElements();
printElements(childElements);

response.setContentType("text/xml; charset=utf-8");

var json = {
  "soap:Envelope": {
    "-xmlns:soap": "http://schemas.xmlsoap.org/soap/envelope/",
    "-xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
    "-xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
    "soap:Body": {
      ResolveIPResponse: {
        "-xmlns": "http://ws.cdyne.com/",
        ResolveIPResult: {
          Country: "Germany",
          Organization: {},
          Latitude: "51.2993",
          Longitude: "9.490997",
          AreaCode: "0",
          TimeZone: {},
          HasDaylightSavings: "false",
          Certainty: "90",
          RegionName: {},
          CountryCode: "DE",
        },
      },
    },
  },
};

var payload = xml.fromJson(JSON.stringify(json));

response.println(payload);

response.flush();
response.close();

function printElements(childElements) {
  childElements.forEach(function (element) {
    if (element.isSOAPElement()) {
      var name = element.getElementName();
      console.log(name.getLocalName() + ": " + element.getValue());
      printElements(element.getChildElements());
    }
  });
}

For more information, see the API documentation.

Back to top