JavaScript呼び出しwebService
8514 ワード
Webサービスはアプリケーションコンポーネントであり、他のアプリケーションに論理的にデータとサービスを提供する.各アプリケーションはネットワークプロトコルと所定の標準データフォーマットを通じて(Http,XML,Soap)は、Webサービスにアクセスし、Webサービスの内部実行によって必要な結果を得ることができます.Webサービスは、簡単な要求から複雑なビジネス処理までの任意の機能を実行できます.導入後、他のWebサービスアプリケーションは、導入されたサービスを発見して呼び出すことができます.
WebServiceの主な目標は、プラットフォーム間での相互運用性です.この目標を達成するために、WebServiceはXML(拡張可能なタグ言語)、XSD(XMLSchema)に完全に基づいています.など、プラットフォームとは独立したソフトウェアベンダーとは独立した標準であり、相互運用可能な分散アプリケーションプログラムを作成する新しいプラットフォームである.このことから、以下の3つの場合、WebServiceを使用することは大きなメリットをもたらすことがわかる.
ページコード:
WebServiceの主な目標は、プラットフォーム間での相互運用性です.この目標を達成するために、WebServiceはXML(拡張可能なタグ言語)、XSD(XMLSchema)に完全に基づいています.など、プラットフォームとは独立したソフトウェアベンダーとは独立した標準であり、相互運用可能な分散アプリケーションプログラムを作成する新しいプラットフォームである.このことから、以下の3つの場合、WebServiceを使用することは大きなメリットをもたらすことがわかる.
<script type="text/javascript">
function createXMLHttpRequest() {
var xmlHttp;
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
return xmlHttp;
}
function ServiceRequest(ServerURL,ServiceName,NameSpace,MethodName,CallBack,ParamNames,ParamValues) {
var xmlHttp = createXMLHttpRequest();
var SOAPString = GetSOAPHeader(NameSpace,MethodName,ParamNames,ParamValues);
var SOAPActionHeader = NameSpace + MethodName;
xmlHttp.open("POST", ServerURL+ServiceName, false);
//xmlHttp.open("POST", "http://192.168.6.8:8080/m/services/JbxxcxService?wsd/getACertDetailFromWeb", true);
xmlHttp.onreadystatechange = function(){
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200 || xmlHttp.status == 0) {
CallBack(xmlHttp);
}
}
};
xmlHttp.setRequestHeader("Content-Type", "text/xml");
xmlHttp.setRequestHeader("SOAPAction", SOAPActionHeader);
xmlHttp.send(SOAPString);
}
function GetSOAPHeader(NameSpace,MethodName,ParamNames,ParamValues){
var SOAPString="";
//SOAP 1.1
SOAPString+="<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/\">
"
SOAPString+="<soap:Body>
";
SOAPString+="<" + MethodName + " xmlns=\"" + NameSpace + "\">
";
if(ParamNames!=null) {
for(var i=0,j=ParamNames.length;i<j;i++) {
SOAPString+="<"+ParamNames[i]+">"+ParamValues[i]+"</"+ParamNames[i]+">
";
}
}
SOAPString+="</" + MethodName + ">
";
SOAPString+="</soap:Body>
";
SOAPString+="</soap:Envelope>
";
return SOAPString;
}
function JSPProcessCallBack(xmlHttp) {
var value = xmlHttp.responseXML.getElementsByTagName("out")[0].firstChild.nodeValue;
loadXml(value);
}
function loadXml(data){
//IE xml
if(navigator.userAgent.indexOf('MSIE') >= 0) {
// xml (IE )
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false; // , ,
xmlDoc.loadXML(data);
}
// xml
if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
// xml (FireFox )
var doc = new DOMParser();
var xmlDoc = doc.parseFromString(data, "text/xml");
}
// list
var elementList;
elementList = xmlDoc.getElementsByTagName('children');
for(var i = 0; i<elementList.length; i=i+1){
var value;
value = elementList[i].getAttribute('id');
var childs;
// ,
childs = elementList[i].childNodes;
var cellArray = new Array();
// row ,
for(var j = 0; j<childs.length; j=j+1){
var cell = $.trim($(childs[j]).text());
var cells = cellArray.push(cell);
}
addRow(value,cellArray);
}
}
function getWebService(){
//JSP WebService
var name = $("#name").val();
var id_card = $("#id_card").val();
var JSPServerURL = "http://192.168.6.8:8080/m/services/";
var JSPServiceName="JbxxcxService?wsd";
var JSPNameSpace = "http://192.168.6.8:8080/m/services/JbxxcxService/JbxxcxService?wsdl";
var JSPMethodName="getACertDetailFromWeb";
var names=["name","id_card"];
var values=[name,id_card];
ServiceRequest(JSPServerURL,JSPServiceName,JSPNameSpace,JSPMethodName,JSPProcessCallBack,names,values);
}
/*********
*
*/
function addRow(new_id, text) {
$("#"+new_id).remove();
var insertTr = "<tr id='" + new_id + "'>";
var context = new Array();
context = text
if(context != "" && context.length>0 ){
for(var i = 0; i < context.length; i = i + 1){
insertTr = insertTr + "<td bgcolor='#f7f7f7' style='font-size: 12px'>"+context[i]+"</td>";
}
insertTr = insertTr + "</tr>";
$("#gridTable").append(insertTr);
}
}
</script>
ページコード:
<body>
<div id="tabCon">
<div>
<form id="form1" name="form1" method="post" action="">
<label><span> :</span><input type="text" name="name" id="name" class="cxInput" /></label>
<label><span> :</span><input type="text" name="id_card" id="id_card" class="cxInput" /></label>
<label><span></span><input type="button" name="imageField" value=" " onClick="getWebService();"/></label>
<table id="gridTable" width="100%" border="0" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
<th width="5%" bgcolor="#B6E0F9" style="font-size: 12px"> </th>
<th width="5%" bgcolor="#B6E0F9" style="font-size: 12px"> </th>
<th width="4%" bgcolor="#B6E0F9" style="font-size: 12px"> </th>
<th width="4%" bgcolor="#B6E0F9" style="font-size: 12px"> </th>
<th width="4%" bgcolor="#B6E0F9" style="font-size: 12px"> </th>
<th width="5%" bgcolor="#B6E0F9" style="font-size: 12px"> </th>
<th width="5%" bgcolor="#B6E0F9" style="font-size: 12px"> </th>
<th width="5%" bgcolor="#B6E0F9" style="font-size: 12px"> </th>
<th width="5%" bgcolor="#B6E0F9" style="font-size: 12px"> </th>
<th width="8%" bgcolor="#B6E0F9" style="font-size: 12px"> </th>
<th width="8%" bgcolor="#B6E0F9" style="font-size: 12px"> </th>
<th width="8%" bgcolor="#B6E0F9" style="font-size: 12px"> </th>
<th width="8%" bgcolor="#B6E0F9" style="font-size: 12px"> </th>
<th width="5%" bgcolor="#B6E0F9" style="font-size: 12px"> 1</th>
<th width="5%" bgcolor="#B6E0F9" style="font-size: 12px"> 2</th>
</table>
</form>
</div>
</div>
</body>