Calling and consuming a JBoss Web Service from JavaScript (AJAX)
I am fiddling around with JBOSS's Web Services, and I have created the following:
http://127.0.0.1:8080/IM/TestService?wsdl
Now I need to access Web Methods from that Web Service from JavaScript.
Say I have a web method named foo in TestService, how do I make an ajax call to it?
I tried accessing the method via http://127.0.0.1:808开发者_如何学JAVA0/IM/TestService/foo, but I'm getting an HTTP Status 404.
I wrote the following JavaScript that will allow me to call the Web Methods from the JBoss Web Service.
Dependencies
- jQuery
- XML Objectifier
- jQuery Soap Client (depends on jQuery and XML Objectifier)
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);
            }
        });
    }
};
Usage
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);
});
Disclaimer: This is still very much untested, so it can still blow up your computer
 
         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论