gpt4 book ai didi

node.js - Node-soap 找不到调度方法

转载 作者:搜寻专家 更新时间:2023-11-01 00:17:57 26 4
gpt4 key购买 nike

我正在尝试使用带有 node-soap 的 SOAP api。我只是在运行一些本地主机测试。

这是我的 wsdl:http://hastebin.com/orenizosay.xml

这是我的 XSD(来自 WSDL):http://hastebin.com/zaqogicabo.xml

public class InsulinEndpoint {

public static void main(String[] argv) {

Insulin insulin = new Insulin ();
String address = "http://localhost:8081/insulin/";
Endpoint.publish(address, insulin);
System.out.println("Webservices online at: " + address);
}
}

这是我的 Node 测试应用程序。客户端已成功创建,client.describe() 正确显示方法。

soap.createClient(url, function(err, client) {
if (err) throw err;

client.backgroundInsulinDose({arg0: 10}, function(err, result) {
if(err)
console.error(err);
else
console.log(result);
});
});

但是当我尝试调用 backgroundInsulinDose 时,我的 react 是

<faultstring>Cannot find dispatch method for {}backgroundInsulinDose</faultstring>

我的 node-soap 发送的 XML 消息是

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:tns="http://server/"><soap:Body><backgroundInsulinDose><arg0>10</arg0></backgroundInsulinDose></soap:Body></soap:Envelope>--------------------

最佳答案

调试源代码一段时间后,我找到了罪魁祸首。

在 node-soap 包的 wsdl.js 文件中,第 1481 行有问题。

在我的例子中,它应该输入那个 if 语句,但不知何故变量 isNamespaceIgnored 在它应该保持 false 时保持 true,所以问题可能与 shouldIgnoreNamespace 函数有关。

编辑:第 1062 行有一些默认忽略的命名空间。

所以我改变了

WSDL.prototype.ignoredNamespaces = ['tns', 'targetNamespace', 'typedNamespace'];

WSDL.prototype.ignoredNamespaces = [];

关于node.js - Node-soap 找不到调度方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29957688/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com