Tag: soap

node.js和一个在getInstance中具有asynchronous调用的单例

我已经实施了一个单例,遵循由Addy Osmani的书“学习Javascriptdevise模式”所描述的模型。 这个单身人士正在build立一个肥皂连接。 这是一个asynchronous调用,我想要在getInstance调用中执行,所以后续调用可以保证有完全连接的连接… 我以为我的想法是将callback传递给getInstance,在我的main.js函数中调用该调用,并在其他脚本需要连接时启动该调用。 和soap连接的其他每个消费者都将它传递给null。 这是一个黑客或一个很好的方法来做到这一点? 如果这不是一个标准的做法,你有什么build议?

尝试通过节点调用National Rail SOAP API时发生TypeError

我正在尝试使用node-soap访问National Rail API。 文档在这里: https : //lite.realtime.nationalrail.co.uk/OpenLDBWS/ 我是SOAP的新手,所以这可能不是API的问题。 我正在得到一个types错误,无论我尝试… TypeError:无法读取未定义的属性“Body” 以下是我用来尝试拨打电话的代码: var soap = require('soap'); var url = 'https://lite.realtime.nationalrail.co.uk/OpenLDBWS/wsdl.aspx?ver=2014-02-20'; var soapHeader = '<com:AccessToken>MY_TOKEN</com:AccessToken>'; soap.createClient(url, function(err, client){ var args = { numRows : 10, crs : 'LAN' }; client.addSoapHeader(soapHeader); client.GetDepartureBoard(args, function(err, result){ if(err){ console.log('error!'); throw err; } console.log(result); }); }); 使用节点肥皂我也可以得到请求的信封,这是内容: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://thalesgroup.com/RTTI/2014-02-20/ldb/" xmlns:tok="http://thalesgroup.com/RTTI/2013-11-28/Token/types" […]

节点肥皂:如何创build具有特定属性的复杂消息?

这是我需要发送给wsdl的消息: <?xml version="1.0" encoding="UTF-8" ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://WSDLPROVIDER" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:enqueue> <domain xsi:type="xsd:string">STH</domain> <messageBodies SOAP-ENC:arrayType="xsd:string[1]" xsi:type="SOAP-ENC:Array"> <item xsi:type="xsd:string">STHE</item> </messageBodies> <recipientNumbers SOAP-ENC:arrayType="xsd:string[2]" xsi:type="SOAP-ENC:Array"> <item xsi:type="xsd:string">09xxxxxxxx</item> <item xsi:type="xsd:string">09xxxxxxxx</item> </recipientNumbers> <senderNumbers SOAP-ENC:arrayType="xsd:string[1]" xsi:type="SOAP-ENC:Array"> <item xsi:type="xsd:string">3000xxxxx</item> </senderNumbers> <encodings xsi:nil="true" xsi:type="SOAP-ENC:Array" /> <udhs xsi:nil="true" xsi:type="SOAP-ENC:Array" /> <messageClasses xsi:nil="true" xsi:type="SOAP-ENC:Array" /> <priorities xsi:type="SOAP-ENC:Array" /> <checkingMessageIds SOAP-ENC:arrayType="xsd:long[2]" xsi:type="SOAP-ENC:Array"> <item […]

node-soap – 调用函数的正确方法

我对SOAP一无所知,但是我的软件的重要组成部分要求我将其用于特定的Web服务。 Web服务的文档是为.net编写的,所以我更难理解我需要在这里做什么。 最重要的是他们需要authentication。 对于连接,我不需要授权,所以我可以检索描述函数的结果。 他们如下: I20151214-09:20:20.381(-8)? Getting inside soap client creation method I20151214-09:20:20.722(-8)? Exception while invoking method 'createSoapClient' TypeError: Cannot call method 'describe' of undefined I20151214-09:20:20.723(-8)? at Object.Soap.createClient (packages/zardak_soap/packages/zardak_soap.js:37:1) I20151214-09:20:20.724(-8)? at [object Object].Meteor.methods.createSoapClient (controllers/server/testFiles.js:21:1) I20151214-09:20:20.724(-8)? at maybeAuditArgumentChecks (livedata_server.js:1698:12) I20151214-09:20:20.725(-8)? at livedata_server.js:708:19 I20151214-09:20:20.725(-8)? at [object Object]._.extend.withValue (packages/meteor/packages/meteor.js:1013:1) I20151214-09:20:20.726(-8)? at livedata_server.js:706:40 I20151214-09:20:20.726(-8)? at [object Object]._.extend.withValue (packages/meteor/packages/meteor.js:1013:1) I20151214-09:20:20.726(-8)? […]

用nock嘲笑肥皂服务

我正在研究与肥皂服务进行通信的node应用程序,使用foam模块将jsonparsing为有效的肥皂请求,并在接收到响应时再返回。 这一切工作正常时,与肥皂服务进行沟通。 我遇到的问题是为此编写unit testing(集成testing工作正常)。 我使用nock来模拟http服务并发送回复。 这个答复确实被foam分析,然后我可以对这个答复做出断言。 所以我不能传递一个JSON对象作为回复,因为foam需要一个肥皂响应。 如果我尝试这样做,我得到的错误: Error: Start tag expected, '<' not found 在JavaScriptvariables中存储XML是痛苦的,并且不起作用(即,将其包含在引号中,并且转义内部引号无效),所以我想将嘲讽的XML响应放入文件中,并将其作为回复传递。 我已经尝试读取stream中的文件 return fs.createReadStream('response.xml') …并用文件回复 .replyWithFile(201, __dirname + 'response.xml'); 两者都失败,错误 TypeError: Cannot read property 'ObjectReference' of undefined 这是文件中的XML <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'> <env:Header></env:Header> <env:Body> <FLNewIndividualID xmlns='http://www.lagan.com/wsdl/FLTypes'> <ObjectType>1</ObjectType> <ObjectReference>12345678</ObjectReference> <ObjectReference xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:nil='true'/> <ObjectReference xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:nil='true'/> </FLNewIndividualID> </env:Body> </env:Envelope> 正在testing的模块是 var foam = require('./foam-promise.js'); […]

在使用node.js使用SOAP服务时,无法parsing响应错误

我正在尝试使用node-soap模块来使用SOAP Web服务。 但是,在调用Web服务的一种方法时,出现“无法parsing响应”错误。 这是实现: var soap = require('soap'); var url = 'http://myservice.com/MyService.svc?wsdl'; var args = { Username: '***', Password: '***' }; soap.createClient(url, function(err, client) { if (!err) { client.MyService(args, function(err, response) { if (!err) { console.log('MyService response:', response); } else { console.log('Error in MyService:', err); } }); } else { console.log('Error in createClient: ', err); […]

Apache cxf java-first和SOAP模块npm

我已经用它的默认方法部署了一个cxf-jaxws-javafirst maven项目:HelloWorld.sayHi(String text)。 HTTP://本地主机:8080 / prueba / HelloWorld的WSDL 另一方面,我有一个肥皂客户端与肥皂模块Nodejs实施。 var express = require('express') var app = express() //soap module var soap = require('soap'); //url of the wsdl var url = 'http://localhost:8080/prueba/HelloWorld?wsdl'; //variable var args = {arg0: 'friend'}; app.get('/', function (req, res) { soap.createClient(url, function(err, client) { client.sayHi(args, function(err, result) { res.send(result); }); }); }) var […]

node-soap客户端中的数组字段的名称空间(Node.js)

如何为数组configurationnode-soap客户端集名称空间不仅用于对象? 我的“sendPatient”方法的参数: params = { patientCard: { patient: { firstName: 'test', lastName: 'test' }, identifiers: { code: "123456789", codeType: 1 } } }; client.sendPatient(params, …) 节点肥皂产生: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://xxx/patient/api/" xmlns:bi="http://xxx/base/info/build/"> <soap:Header></soap:Header> <soap:Body> <tns:sendPatient xmlns:tns="http://xxx/patient/api/" xmlns="http://xxx/patient/api/"> <tns:patientCard> <ns1:patient xmlns:ns1="http://xxx/patient/"> <ns1:firstName>test</ns1:firstName> <ns1:lastName>test</ns1:lastName> </ns1:patient> <ns1:identifiers xmlns:ns1="http://xxx/patient/"> <ns1:code>123456789</ns1:code> <ns1:codeType>1</ns1:codeType> </ns1:identifiers> </tns:patientCard> </tns:sendPatient> </soap:Body> </soap:Envelope> 它的工作原理,但我需要发送标识符数组,不仅一个,所以当我把数组 params = { […]

在node.js中处理soap和wsdl webservice

我想从node.js处理soap和wsdl服务,对于最初的启动,我下载了node-soap模块并运行了示例js文件,它要求我下载像node-expat这样的模块,之后它给了我下面的错误 > Error: Cannot find module '../build/Release/node_expat.node' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:362:17) at require (module.js:378:17) at Object.<anonymous> (C:\Users\290495\Desktop\nodejs\nodejs\node_modules\no de-expat\lib\node-expat.js:4:13) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:362:17) 任何想法如何处理上述问题将是非常有益的! 提前致谢!

nodejs + vmware vsphere sdk soap连接

我正在尝试使用带有soap的NodeJS并连接到ESX或虚拟中心上的VMWare的WSDL,但一直无法这样做。 任何指针都会很有帮助。 我正在使用节点肥皂,我还发现了一个使用肥皂连接到ESX的PHP教程http://www.helixstorm.com/connecting-vsphere-api-php5-soap/ 谢谢!