从 wsdl 在 typescript 中创建肥皂客户端

Posted

技术标签:

【中文标题】从 wsdl 在 typescript 中创建肥皂客户端【英文标题】:create soap client in typescript from wsdl 【发布时间】:2019-06-25 09:31:23 【问题描述】:

我正在使用这个库 https://www.npmjs.com/package/soap 从 wsdl 生成一个客户端,更具体地说是soap.createclient(url) 行。

问题在于 url 必须对应于网络服务器提供的 wsdl 文件,在我的情况下,我不能这样做。

所以我想下载 wsdl 文件,将其存储在我的项目中,并将其提供给 createclient 方法,方法是提供字符串参数中的所有内容或提供下载文件的类似内容(我正在使用 webpack fyi ),但是这些选项都不起作用,这看起来很奇怪,因为它在文档中写到 createclient 方法似乎支持本地文件系统路径。

提前感谢您的帮助

【问题讨论】:

我正在使用同一个库并加载本地 wsdl 定义没有任何问题:import createClientAsync from 'soap'; client = await createClientAsync(localFilePath); 【参考方案1】:

我假设这大致是您的文件夹结构,并且您正在从根目录运行应用程序:

/dist
  |- app.js
/src
  |- app.ts
  |- soap.wsdl

在这种情况下,.wsdl 文件的 url 需要为 './src/soap.wsdl' 才能正常工作,并且您需要将 src 文件夹与 dist 文件夹一起提供。

如果您只发送 dist 文件夹,您需要在 dist 文件夹中包含 .wsdl 文件,并将 url 指定为“./dist/soap.wsdl”。如果您在每次构建时删除 dist 文件夹,则需要确保将 .wsdl 文件复制到构建中。

另一种选择是在根目录中添加 assets 文件夹,将 .wsdl 文件放在那里,使用 './assets/soap.wsdl' 指向它,然后将 assets 文件夹与 dist 文件夹一起传送。

【讨论】:

以上是关于从 wsdl 在 typescript 中创建肥皂客户端的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 WSDL 将用户代理添加到自动生成的肥皂客户端

如何在C#中创建SOAP / WSDL客户端?

使用 Amazon Web Services WSDL 的最佳 python 肥皂堆栈是啥?

使用xsd文件验证肥皂xml响应

如何像在 babelrc 中创建依赖别名一样在 typescript 中创建类型别名?

在 TypeScript 中创建电子菜单?