javascript 调用 Java写的 webservices(用xfire构建的) ,我在网上找了N篇都是调用.NET的自己弄了两天总算实验成功,写个日志作为备份!希望对大家有帮助!
以下是Java代码很简单:
public class HelloWorld implements IHelloWorld {
public String hello(String str) {
System.out.println("==========");
System.out.println(str);
return "hello " + str;
}
}
很简单,至于xfire的webservices怎么配置,大家可以自己找相关文章去看!
以下是service.xml描述文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>HelloWorldSimple</name>
<serviceClass>com.wangtao.IHelloWorld</serviceClass>
<namespace>http://simple.xfire.webservice/</namespace>
<implementationClass>com.wangtao.HelloWorld</implementationClass>
</service>
</beans>
以下是html代码,大家可以直接复制:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>js调用webservice</title>
<script type="text/javascript">
function ajaxFunction()
{
var xmlHttp;
try{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
alert(xmlHttp.status);
if(xmlHttp.status == 200){
document.writeln("这是结果: " + xmlHttp.responseText);
}
}
}
var data;
data = '<?xml version="1.0" encoding="utf-8"?>';
data = data + '<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/">';
data = data + '<soap:Body>';
data = data + '<hello xmlns="http://simple.xfire.webservice/">';
data = data + '<str>taotao</str>';
data = data + '</hello>';
data = data + '</soap:Body>';
data = data + '</soap:Envelope>';
var url = "http://198.9.1.97:8080/xxwt/services/HelloWorldSimple";
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader ("Content-Type","text/xml; charset=utf-8");
xmlHttp.setRequestHeader ("SOAPAction","http://simple.xfire.webservice/hello");
xmlHttp.send(data);
}
</script>
</head>
<body">
<input type="button" value="del" οnclick="ajaxFunction()"/>
</body>
</html>