簡體   English   中英

在IBM Bluemix上運行時,強肥皂(節點肥皂)客戶端沒有服務

[英]Strong-soap (node-soap) client has no services when running on IBM Bluemix

我將強肥皂 (node-soap的叉子)與部署在IBM Bluemix上的node.js應用程序一起使用。 通過加載本地wsdl文件,可以創建soap客戶端soap.createClient ,並且它們都可以在我們的開發人員本地計算機上正常運行。 但是,當項目部署到Bluemix時,將創建沒有任何服務的客戶機。 soap.createClient創建客戶端期間不會發生任何錯誤,但是client.describe()為空{}並且不能在其上調用任何服務或方法。

我檢查了是否找到了wsdl並正確加載了它,並且fs.existsSync說該文件存在。

我已經嘗試過在Bluemix上對應用程序進行實時調試,並逐步執行了代碼,沒有引發任何錯誤,但是客戶端沒有任何操作。 我很沮喪,有人可以幫忙嗎?

日志文件只有一個錯誤: SOAP service was not correctly initialized in the client. 從下面的代碼返回。 Stenaline是wsdl中的服務名稱,因此在我的client.Stenalineclient.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);
  });
};

這看起來像是強肥皂中的錯誤。

https://github.com/vpulim/node-soap切換到使用node-soap,問題已解決。

在AWS Lambda上使用強肥皂存在相同的問題,也可以通過在節點肥皂中交換來解決

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM