WebReference.com - Part 5 of chapter 3 from Professional Java Web Services, Wrox Press Ltd. (4/6) | WebReference

WebReference.com - Part 5 of chapter 3 from Professional Java Web Services, Wrox Press Ltd. (4/6)

To page 1To page 2To page 3current pageTo page 5To page 6
[previous] [next]

Professional Java Web Services

Invoking the Call

Now that the SOAP request is properly set up we can now [invoke] the call:

// Invoke the call
Response resp = null;
try {
  URL url = new URL(RPCROUTER);
  resp = call.invoke(url, "");
} catch (SOAPException e)  {
  out.println("Caught SOAPException (" +
              e.getFaultCode() + "): " + e.getMessage());
}

The invoke() method is used to send the SOAP request to the SOAP service. The method signature of the invoke() method is below:

public response invoke(java.net.URL url, java.lang.String SOAPActionURI)

The url parameter is used to specify the endpoint for the Apache SOAP runtime. The SOAPActionURI is used to specify the action to be called at the specified URL.

The invoke() method has to be within a try...catch clause because it throws a SOAPException. A SOAPException will be thrown if the Call object is set up incorrectly, or if there are network problems, and so on. The invoke() method returns a Response object, which represents the response to the call.

Interpreting the Response

In this section we will discuss how the response from a SOAP server should be handled.

Successful Response

If the response doesn't contain a fault, then the return value can be obtained by first calling the getReturnValue() method, which puts the return value into a Parameter object. The getValue() method of the Parameter object can then be used to obtain the actual value and manipulate the value as needed. The value returned is the UID of the resumé that was submitted. If the value is not null then the value is printed.

// Check the response
if (!resp.generatedFault()) {          //Successful response
  Parameter ret = resp.getReturnValue();
  String value = (String) ret.getValue();
  if (value != null) {
    out.println(
 "<font face='Arial Narrow' size='2'>The resumé was submitted successfully!" +
 "The unique identifier(UID) generated by the system is <b>" + value +
 "</b></font><br>");
  } else {
    out.println(
 "<font face='Arial Narrow' size='2'>The resumé was not submitted successfully
 :-(</font><br>");
    out.println(
 "<font face='Arial Narrow' size='2'>&nbsp[<a href='../servlet/retrieve?uid="
 + value + "'>View Resumé</a>]" + "[<a href='../submit.html'>Submit Another Resumé</a>]&nbsp[<a href='../index.html'>Home</a>]</font>");
  }
}

Unsuccessful Response

If the response does contain a fault, we can obtain the fault from the Response object by using the getFault() method, which returns a Fault object. The Fault object contains a getFaultCode() and getFaultString() method, which can be used to obtain the fault code and the fault string, respectively.

else {                        //Unsuccessful response
  Fault fault = resp.getFault();
  out.println("Generated fault: ");
  out.println ("  Fault Code   = " + fault.getFaultCode());
  out.println ("  Fault String = " + fault.getFaultString());
}

To page 1To page 2To page 3current pageTo page 5To page 6
[previous] [next]

Created: June 17, 2002
Revised: June 17, 2002

URL: https://webreference.com/programming/java/webservices/chap3/5/4.html