1、上一篇WebService文章介绍了基本的创建、调用WebService服务的形式,今天学习了一下通过Ajax调用WebService服务的形式,
package com.wang.webservice.service; import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebService public class HelloService { public String sayHello( String name ){ System.out.println(name); return "hello " + name; } public static void main(String[] args) { Endpoint.publish("http://127.0.0.1:1234/helloservice",new HelloService()); } }
3、启动后,创建一个html文件,准备通过ajax请求WebService服务,直接上代码,代码中有说明:
<!DOCTYPE html> <html> <head> <Meta charset="UTF-8"> <title>通过Ajax调用webService服务</title> </head> <script> /* ActiveXObject有浏览器兼容问题 */ var xhr = new ActiveXObject("Microsoft.XMLHTTP"); function sendMsg(){ var name = document.getElementById("name").value; //服务地址 var wsUrl = "http://127.0.0.1:1234/helloservice"; //请求体 var soap = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://service.webservice.wang.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' + '<soapenv:Body><q0:sayHello><arg0>'+ name +'</arg0></q0:sayHello></soapenv:Body></soapenv:Envelope>'; //打开连接 xhr.open('POST',wsUrl,true); //重新设置请求头 xhr.setRequestHeader("Content-Type","text/xml;charset=UTF-8"); //设置回调函数 xhr.onreadystatechange = _back; //发送请求 xhr.send(soap); } function _back(){ if(xhr.readyState == 4){ if( xhr.status == 200 ){ /* 有浏览器兼容问题 */ var ret = xhr.responseXML; var msg = ret.getElementsByTagName('return')[0]; alert(msg); } } } </script> <body> <input type="button" value="发送soap请求" onclick="sendMsg()" /> <input type="text" id="name"/> </body> </html>
此时,用IE浏览器打开这个HTML文件,基本就能看到效果了。
代码中,除了请求体外,其他的都好理解,那么这个请求体是哪来的哪儿??
4、动过myeclipse(eclipse)拦截工具获得请求体。上图:
注:http://127.0.0.1:1234/helloservice?wsdl 上篇文章中介绍的。。
通过Ajax调用webService服务完毕。。。
原文地址:https://www.jb51.cc/ajax/163059.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。