spacer
Yehuda Shiran December 4, 2001
Calling the EchoFloat Web Service
Tips: December 2001

Yehuda Shiran, Ph.D.
Doc JavaScript

Developer News
OpenOffice 3.2 Lands Amid Critical Changes
Red Hat, IBM Firmly in KVM Virtualization Camp
Red Hat Talks Up Open Source Cloud Plans

When calling a Web service, you need to pay close attention to its expected input data type. When the input is of type float, you may send a decimal number, an integer, a floating number, a quoted decimal, a quoted integer, or a quoted floating number. You send the input decimal number to the Web service by assigning the third parameter of the callService() method. The following calls will be successful:

iCallID = webServiceCallerBody.echo.callService(handleResult, "echoFloat", 5.6e-3);
iCallID = webServiceCallerBody.echo.callService(handleResult, "echoFloat", 5.6);
iCallID = webServiceCallerBody.echo.callService(handleResult, "echoFloat", 5);
iCallID = webServiceCallerBody.echo.callService(handleResult, "echoFloat", "5.6e-3");
iCallID = webServiceCallerBody.echo.callService(handleResult, "echoFloat", "5.6");
iCallID = webServiceCallerBody.echo.callService(handleResult, "echoFloat", "5");
If you send a non-quoted string, the JavaScript interpreter will assume it is a variable and will complain that the variable is undefined. Therefore, the following line of code will yield an error:

iCallID = webServiceCallerBody.echo.callService(handleResult, "echoFloat", abc);
If you send a quoted string as follows:

iCallID = webServiceCallerBody.echo.callService(handleResult, "echoFloat", "a");
The Web service will return the following error message:

Learn more about Web services in Column 96 (Web services, Part I: Introduction) and Column 97 (Web Services, Part II: Calling Service Methods).

Here is an HTML file that demonstrates calling a Web service. Copy it to your local disk, together with the WebService behavior (webservice.htc):

<HTML>
<BODY ID="webServiceCallerBody" onload="loadService()" 
  STYLE="behavior:url(webservice.htc);background-color:peachpuff;color:brown;font-size:18">
<SCRIPT LANGUAGE="JavaScript">
<!--
function loadService() {
	webServiceCallerBody.onserviceavailable = enableServiceCall;  //Used for the synchronous call.
	webServiceCallerBody.useService(
	  "http://soap.bluestone.com:80/interop/EchoService/EchoService.wsdl","echo");
}
function callAsynch() {
	iCallID = webServiceCallerBody.echo.callService(
	  handleResult, "echoFloat", 5.6e-3);
}
function callSynch() {
	var co = webServiceCallerBody.createCallOptions();
	co.funcName = "echoFloat";
	co.async = false;
	var oResult = webServiceCallerBody.echo.callService(co, 5.6e-3);
	handleResult(oResult);
}

function enableServiceCall() {
	b2.disabled = false;
}

function handleResult(res) {
  if (!res.error) {
    alert("Successful call. Result is " + res.value);
  }
  else {
    alert("Unsuccessful call. Error is " + res.errorDetail.string);
  }
}
// -->
</SCRIPT>
<HR><H4>Calls to an echo service</H4><HR><BR><BR>

<BUTTON ID="b1" onclick="callAsynch()">Call Asynchronously</BUTTON><BR><BR>
<BUTTON ID="b2" onclick="callSynch()" disabled>Call Synchronously</BUTTON><BR><BR><BR><BR>

<A HREF="http://www.xmethods.net/ilab/">Interop Testing Site</A>

</BODY>
</HTML>

People who read this tip also read these tips:

Look for similar tips by subject:


The Network for Technology Professionals

Search:

About Internet.com

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers

webref The latest from WebReference.com Browse >
Are Google's Language Translation Web Services Ready for Prime Time? · Installing and Using Meeplace, the Business Review CMS · Sending an HTML and Plain Text E-newsletter with ASP.NET, Part 2
Sitemap · Experts · Tools · Services · Email a Colleague · Contact FREE Newsletters 
 The latest from internet.com
Kingston Debuts Power-Saving Memory Upgrades · Web Marketing Tools: What's Your Reputation? · Ecommerce Marketing Tips: Writing Better Copy