Strong-soap (node-soap) client has no services when running on IBM Bluemix
<p>I am using <a href="https://github.com/strongloop/strong-soap" rel="nofollow">strong-soap</a> (fork of node-soap) with a node.js application deployed on IBM Bluemix. The soap client is created <code>soap.createClient</code> by loading a local wsdl file and it all works correctly on our developer local machines. However when the project is deployed to Bluemix, the client is created without any services. No errors occur during client creation by <code>soap.createClient</code> but <code>client.describe()</code> is empty <code>{}</code> and no services or methods can be called on it.</p>

<p>I have checked that the wsdl is found and loaded correctly and <code>fs.existsSync</code> says the file is present.</p>

<p>I have tried live debugging the app on Bluemix and stepped through the code, no errors are thrown but the client is empty of any operations. I am stumped, can someone help?</p>

<p>The log file has only one error: <code>SOAP service was not correctly initialized in the client.</code> which is returned from the code below. <code>Stenaline</code> is the service name from the wsdl, so on my localmachine <code>client.Stenaline</code> is set correctly and operations can be called on it.</p>

<p>The connect function in full</p>

<pre><code>var soapClient = null;
var connect = function (create_callback) {
  var options = {
    endpoint: config.endpoint
  };

  var wsdl = './src/config/contract/www.stenaline.com.sloop.ws.2014.10.wsdl';

  if (!fs.existsSync(wsdl)) {
    let err = new Error('Failed to locate SOAP wsdl file.');
    err.path = wsdl;
    return process.nextTick(function () {
      create_callback(err);
    });
  }

  soap.createClient(wsdl, options, function (err, client) {
    if (err) return create_callback(err);

    client.setSecurity(wsSecurity);
    soapClient = client;

    debug('client', client.describe());

    if (!client.Stenaline) {
      let err = new Error('SOAP service was not correctly initialized in the client.');
      return process.nextTick(function () {
        create_callback(err);
      });
    }

    create_callback(null, client);
  });
};
</code></pre>