我正在摆弄 JBOSS 的 Web 服务,并且创建了以下内容:
http://127.0.0.1:8080/IM/TestService?wsdl
现在我需要通过 JavaScript 从该 Web 服务访问 Web 方法。
假设我在 TestService
中有一个名为 foo
的 Web 方法,如何对其进行 ajax 调用?
我尝试通过 http://127.0.0.1:8080/IM/TestService/foo
访问该方法,但收到 HTTP 状态 404。
最佳答案
我编写了以下 JavaScript,它允许我从 JBoss Web 服务调用 Web 方法。
依赖关系
- jQuery
- XML Objectifier
- jQuery Soap Client (取决于 jQuery 和 XML 对象器)
var WS = function (url, ns, nsName) {
return function (method, parameters, callback) {
var i, j, para, soapBody = new SOAPObject(method), sr, response;
soapBody.ns = {
name: nsName,
uri: ns
};
if (typeof parameters === "function") {
callback = parameters;
} else if (parameters && parameters.length) {
for (i = 0, j = parameters.length; i < j; ++i) {
para = parameters[i];
soapBody.appendChild(new SOAPObject(para.name)).val(para.value);
}
}
sr = new SOAPRequest(method, soapBody);
SOAPClient.Proxy = url;
SOAPClient.SendRequest(sr, function (r) {
response = r.Body[0][method + "Response"][0]["return"][0]["Text"];
if (callback) {
callback.call(sr, response);
}
});
}
};
使用
var ws = WS("http://127.0.0.1:8080/IM/TestService", "http://wservices/", "ns2");
ws("foo", [{name: "name", value:"dreas"}], function (r) {
console.log(r);
});
免责声明:这还没有经过测试,因此它仍然可能会毁掉您的计算机
关于java - 从 JavaScript (AJAX) 调用和使用 JBoss Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2794456/