node.js - 使用 node-soap 创建 SOAP Web 服务

标签 node.js web-services soap

我遵循了 git repo ( https://github.com/vpulim/node-soap ) 的这个例子:

问题1

我已经创建了一个服务器是否需要在回调中创建服务器。根据我的理解,readFileSync 无论如何都是阻塞的。

问题2

写成非阻塞的,把soap.listen放到回调里不是更好吗

问题3

从哪里获取:'myservice.wsdl'。我是否必须创建它/如何创建它?有发电机吗?

soap.service.coffee

 exports.getService = () ->
  myService = {
    MyService: {
      MyPort: {

        # This is how to define an asynchronous function.
        MyAsyncFunction: (args, callback) ->
          # do some work
          callback({
            name: args.name
          })
      }
    }
  }

exports.getXml = () ->
  require('fs').readFileSync('myservice.wsdl', 'utf8', ()->
    server = http.createServer((request,response) ->
      response.end("404: Not Found: "+request.url)
    )
  )

服务器.咖啡

...

http = require('http')
portHTTP = process.env.PORT || 61361
io = require('socket.io')
soap = require('soap')
soapService = require('./backend/soap/soap.service.js')

...

server = http.createServer(app).listen(portHTTP, () ->
  logger.info("Unsecure Express server listening on port #{portHTTP} environment: #{environment}")
)
soap.listen(server, '/wsdl', soapService.getService, soapService.getXml)

最佳答案

问题1的答案:readFileSync是用来加载wsdl的,不是用来创建服务器的。所以不需要在回调中创建服务器。

问题 2 的答案:soap.listen 正在监听请求,然后对其进行处理。 # do some work 这一步可能会阻塞,因此会在该步骤后回调。

问题 3 的答案:您必须在编写 SOAP API 服务器时创建 wsdl,或者如果您使用的是现有服务,则应以 wsdl 结尾的 url 形式提供该服务以供使用>.

wsdl 位于xml 中,因此可以生成。 See which wsdl style to use notes .

另请参阅我的 soap 示例项目 nodejs_mock_agresso .

关于node.js - 使用 node-soap 创建 SOAP Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32480481/

相关文章:

javascript - this._callback.apply 不是一个函数! Node.js Mysql错误

node.js - Node mongodb-native 或 Mongoose

C# DLL 从 C++ 应用程序调用 SOAP Web 服务

javascript - 从同一模块内调用导出函数

node.js - Sequelize ——this.get()

java - 创建名称为 'cxf' 的 bean 时出错

php - 如何在没有Flash的情况下从网站上录制用户的声音?

java - Json 忽略类名而不是属性

java - Spring 和 Soap API 错误 : "Unable to validate using XSD: Your JAXP provider"

java - 如何使用 wss4j 库验证 soap 签名