[英]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.Stenaline
上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);
});
};
這看起來像是強肥皂中的錯誤。
從https://github.com/vpulim/node-soap切換到使用node-soap,問題已解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.