Call a webservice in Java
 


If you have already created your first Java Web Service, and you are wondering how to consume this web service then this tutorial will show you just that. In fact one of the main advantages of Web Services is its Platform indepence. Which means your web service can be written in any language whereas you can call this web service and consume it from any other programming language.

First, you need to create a simple web service using Java. Once you have that web service, in this case, it is a simple web service that returns the system time, you can then write a simple program to consume this service.

If you had completed the tutorial to create a webservice, you will already have a folder named javasamples and another sub folder named one. Under this folder 'one' create another java program named TimeClient.java as follows:

execute this command in the command prompt ( notepad TimeClient.java )
Now copy and paste the below code in that file

package javasamples.one;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.URL;

class TimeClient {

    public static void main(String args[ ]) throws Exception {

        URL url = new URL("http://localhost:9876/one?wsdl");

        // Qualified name of the service:
        //   1st arg is the service URI
        //   2nd is the service name published in the WSDL

        QName qname = new QName("http://one.javasamples/", "TimeServerImplService");

        // Create, in effect, a factory for the service.

        Service service = Service.create(url, qname);

        // Extract the endpoint interface, the service "port".

        TimeServer eif = service.getPort(TimeServer.class);

        System.out.println(eif.getTimeAsString());
        System.out.println(eif.getTimeAsElapsed());

   }

}

Now go to the parent folder of javasamples folder and execute the below command: javac javasamples/one/*.java Now you run the web service publisher application with this command. java javasamples.one.TimeServerPublisher Next open another command prompt and move to the parent folder of javasamples folder and execute the below command: java javasamples.one.TimeClient That's it, you should see the system time in the second window, returned from your web service.

Wasn't it easy? Now to demonstrate that web services can be consumed from any programming language irrespective of which language was used to create the web service, we will write a perl file to consume the same TimeServer web service which was written in Java.

Here is the perl code below. Copy and paste it to your perl file in your localhost web server. Then call it from your browser. You should get the same result.

#!/usr/bin/perl -w
use SOAP::Lite;

my $url = 'http://127.0.0.1:9876/ts?wsdl';
my $service = SOAP::Lite->service($url);

print "\nCurrent time is: ", $service->getTimeAsString();
print "\nElapsed milliseconds from the epoch: ", $service->getTimeAsElapsed();

 
 
 
 
 
COPYRIGHT´┐Ż 2006 java-samples.com. ALL RIGHTS RESERVED.