nodejs - сбой вызова SOAP с ошибкой 500 с использованием сильного мыла пакета npm
Я пытаюсь использовать пакет сильного мыла npm для выполнения вызова SOAP в nodejs.
Я получаю сообщение об ошибке, как показано ниже (первые несколько строк ошибки ниже)
"statusCode":500,"body":"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<SOAP-ENV:
Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <SOA
P-ENV:Body>\n <SOAP-ENV:Fault>\n <faultcode>BWENGINE-100031</f
aultcode>\n <faultstring>Output data invalid</faultstring>\n
<faultactor>JOBID_15734</faultactor>\n <detail>\n <
ns0:Error_Short_Message xmlns:ns0=\"http://xmlns.example.com/unique/default/name
space/1073503881527\">\n <ns0:key>JOBID_15734</ns0:key>\n
<ns0:msg_code>BWENGINE-100031</ns0:msg_code>\n
<ns0:message>Output data invalid</ns0:message>\n
Код клиента, как показано ниже:
var soap = require('strong-soap').soap;
var url = 'D:/Workspace/Projects/Sample.wsdl';
var args = {arg1: '6564',arg2:'ONE'};
var soapHeader = {
'header1': 'value1',
'header2': 'value2',
'header3': 'value3',
};
var options = {};
soap.createClient(url,options,function (err, client) {
client.setEndpoint('http://hostname:Port/SampleService/Service');
var method = client['GetDataMethod'];
method(args,function (err, result, envelope, soapHeader) {
//response envelope
//console.log('Response Envelope: \n' + envelope);
//'result' is the response body
console.log('Result: \n' + JSON.stringify(result));
})
});
Любые предложения о причине этой ошибки будут полезны.
ОБНОВИТЬ:
Я был в состоянии выполнить запрос и получить ответ, если я построю аргументы, как показано ниже:
var args = {
"namespace":{
"requestHeader":{
"header1": "value1",
"header2": "value2",
"header3": "value3"
},
"arg1": "6564",
"arg2":"ONE"}
};
Но есть ли причина, по которой strong-soap не может настроить пространство имен на основе содержимого wsdl? Программная идентификация точного пространства имен среди 20-30 пространств имен в wsdl представляется трудоемкой задачей.