JQuery access WebService (accessible Java [Xfire])

Original link: http://www.cnblogs.com/yang3wei/archive/2012/06/03/2739713.html

Reprinted from: http://www.cnblogs.com/kaixuanpisces/archive/2010/11/14/1877115.html

Recently, some time to learn the next JQuery, JQuery found many examples of access .net WebService. As WebService This interface should be generic, why no one example of Java do? This caught my interest.

I look at the people's look at a few examples, found the problem. SOAP WebService is well known that comply with the agreement, why are examples of parameters passed in JSON format? net WebService compatible JSON format, which is a standard Java WebService, is not compatible JSON. It seems everyone net harm ah. So I carefully understand the WSDL file, made a case in point. Here just put the key code.

 $(function () {
     $("#btnWs").click(btnAjaxPost);
 });
 
 function btnAjaxPost(event) {
     $.ajax({
         type: "POST",
         contentType:"text/xml",
         url:"http://*****/WebServiceTest/services/HelloWorldService",
         data:getPostData(),//这里不该用JSON格式
         dataType:'xml',//这里设成XML或者不设。设成JSON格式会让返回值变成NULL
         success: function(xml) {
            //对结果做XML解析。
            //浏览器判断 (IE和非IE完全不同)
            if($.browser.msie){ 
                   $("#result").append(xml.getElementsByTagName("ns1:out")[0].childNodes[0].nodeValue+"<br/>");
            }
            else{
                $(xml).find("out").each(function(){
                      $("#result").append($(this).text()+"<br/>");
                })
            }
         },
         error: function(x, e) {
            alert('error:'+x.responseText);
         },
         complete: function(x) {
            //alert('complete:'+x.responseText);
         }
     });
 }
 //定义满足SOAP协议的参数。
 function getPostData()
 {
     //根据WSDL分析sayHelloWorld是方法名,parameters是传入参数名
     var postdata="<?xml version=\"1.0\" encoding=\"utf-8\"?>";
     postdata+="<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";
     postdata+="<soap:Body><sayHelloWorld xmlns=\"http://tempuri.org/\">";
     postdata+="<parameters>"+$("#txtName").val()+"</parameters>";
     postdata+="</sayHelloWorld></soap:Body>";
     postdata+="</soap:Envelope>";
     return postdata;
 }
SVN complete example address: HTTP : //theyounglearningmaterials.googlecode.com/svn/trunk/JavaWebServices/WebServiceTest/

I will learn all the examples will be placed  HTTP : //theyounglearningmaterials.googlecode.com/svn/trunk/ inside, easy management to prevent loss.



Reproduced in: https: //www.cnblogs.com/yang3wei/archive/2012/06/03/2739713.html

Guess you like

Origin blog.csdn.net/weixin_30802171/article/details/94782953