首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用node-soap创建SOAP Webservice

使用node-soap创建SOAP Webservice
EN

Stack Overflow用户
提问于 2015-09-09 21:10:12
回答 1查看 7K关注 0票数 3

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

问题1

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

问题2

编写非阻塞代码并将soap.listen放入回调函数不是更好吗

问题3

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

soap.service.coffee

代码语言:javascript
复制
 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)
    )
  )

server.coffee

代码语言:javascript
复制
...

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)
EN

回答 1

Stack Overflow用户

发布于 2016-03-10 19:55:13

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

问题2的答案: soap.listen正在侦听请求,然后处理该请求。可能阻塞的是# do some work步骤,因此该步骤之后的回调。

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

wsdlxml中,因此可以生成。See which wsdl style to use notes

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32480481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档