0

IBM Bluemix にデプロイされた node.js アプリケーションでstrong-soap (node-soap のフォーク) を使用しています。SOAP クライアントはsoap.createClient、ローカルの wsdl ファイルをロードすることによって作成され、開発者のローカル マシン上ですべて正しく動作します。ただし、プロジェクトが Bluemix にデプロイされると、クライアントはサービスなしで作成されます。クライアントの作成中にエラーは発生しませんsoap.createClientが、client.describe(){}であり、サービスまたはメソッドを呼び出すことはできません。

wsdl が正しく読み込まれfs.existsSync、ファイルが存在することを確認しました。

Bluemix でアプリのライブ デバッグを試み、コードをステップ実行しました。エラーはスローされませんが、クライアントには何も操作がありません。私は困惑しています、誰か助けてもらえますか?

ログ ファイルにはエラーが 1 つだけあります。SOAP service was not correctly initialized in the client.これは、以下のコードから返されます。Stenalineはwsdlのサービス名であるため、私のローカルマシンclient.Stenalineでは正しく設定されており、操作を呼び出すことができます.

コネクト機能が充実

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);
  });
};
4

2 に答える 2

0

AWS Lambda でstrong-soapを使用して同じ問題が発生しましたが、これもnode-soapでスワップすることで解決されました

于 2017-03-24T14:52:15.667 に答える