如何用js 调用 webservice 我现在做的是 j2ee项目
谁能给提供一个例子,调用webservice 能否提供一个 通用的 js 跟各个js框架无关的
谢谢!!!!!
[b]问题补充:[/b]
是 能否给写个简单的 例子 谢谢
[b]问题补充:[/b]
我的webservice 文件
<?xml version="1.0" encoding="UTF-8"?>
<service>
<name>SimpleWs</name>
<namespace>wsclient.server.ws.mjp.com</namespace>
<serviceClass>com.mjp.ws.server.ISimpleWs</serviceClass>
<implementationClass>com.mjp.ws.server.SimpleWsImpl</implementationClass>
<style>wrapped</style>
<use>literal</use>
<scope>application</scope>
</service></beans>
ws 方法:
public String example(String message);
js 调用 soap 数据
<?xml version="1.0" encoding="utf-8"?>soap:Body{aa:123}/soap:Body/soap:Envelope
然后返回 500 错误
soap:Bodysoap:Faultsoap:ClientInvalid operation: {wsclient.server.ws.mjp.com}sample/soap:Fault/soap:Body/soap:Envelope
是啥原因? 谢谢
[b]问题补充:[/b]
我java 客户程序调用没有问题
主要是 看的 js ajax调用 是不是有问题?
<?xml version="1.0" encoding="UTF-8" ?>
- wsdl:types
- xsd:complexType
- xsd:sequence /xsd:sequence /xsd:complexType /xsd:element
- xsd:complexType
- xsd:sequence /xsd:sequence /xsd:complexType /xsd:element
- xsd:complexType
- xsd:sequence /xsd:sequence /xsd:complexType /xsd:element
- xsd:complexType
- xsd:sequence /xsd:sequence /xsd:complexType /xsd:element /xsd:schema
- xsd:sequence /xsd:sequence /xsd:complexType /xsd:schema
- xsd:sequence /xsd:sequence /xsd:complexType
- xsd:sequence /xsd:sequence /xsd:complexType /xsd:schema /wsdl:types
- /wsdl:message
- /wsdl:message
- /wsdl:message
- /wsdl:message
- /wsdl:operation
- /wsdl:operation /wsdl:portType
- /wsdl:input
- /wsdl:output /wsdl:operation
- /wsdl:input
- /wsdl:output /wsdl:operation /wsdl:binding
- /wsdl:port /wsdl:service /wsdl:definitions 我的 js文件 var webservice = function(){ var nameSpace = "DefaultNamespace"; var url = "http://localhost:8080/wspro/services/SimpleWs"; //创建 xmlhttp var xmlhttp ; var callback; var createXmlHttp = function(){ if(window.ActiveXObject){ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } else if(window.XMLHttpRequst){ xmlhttp=new XMLHttpRequest(); } }; //回调处理 var setChange = function(){ if(xmlhttp.readyState==4 ){ alert(xmlhttp.status); alert(xmlhttp.responseText); document.getElementById("tt").value = xmlhttp.responseText; if(xmlhttp.status==200){ alert(xmlhttp.responseText); returnData = {}; if(callback){ if(xmlhttp.responseText !=""){ var json = eval("(" + xmlhttp.responseText + ")"); returnData = json; } callback(returnData); } } } }; //获取字符串长度 var getlen = function(str){ var bytesCount=0; for (var i = 0; i < str.length; i++){ var c = str.charAt(i); if (/^[u0000-u00ff]$/.test(c)){ bytesCount += 1; }else{ bytesCount += 2; } } return bytesCount; }; //获取数据串 var getData = function(method,str){ var data; data = '<?xml version="1.0" encoding="utf-8"?>'; data += ''; data += 'soap:Body'; data += ''; data += ''+ str +''; data += ""; data += '/soap:Body'; data += '/soap:Envelope'; return data; }; var setRequest = function(method,data){ createXmlHttp(); xmlhttp.onreadystatechange = setChange; xmlhttp.open("POST",url, true); xmlhttp.setRequestHeader("Content-Type","text/xml; charset=utf-8"); xmlhttp.setRequestHeader("Content-Length",getlen(data)); xmlhttp.setRequestHeader("SOAPAction", nameSpace + method); xmlhttp.send(data); } return { postWs : function(method,data,call){ var data = getData(method,data); callback = call; document.getElementById("t").value = data; setRequest(method,data); } } }(); 我的调用方式: webservice.postWs("sample","adsfas",function(data){ alert(data); }); [b]问题补充:[/b] 我的程序源码: