Call a webservice in Java

By: Emiley J Emailed: 1613 times Printed: 2079 times    

Latest comments
By: rohit kumar - how this program is work
By: Kirti - Hi..thx for the hadoop in
By: Spijker - I have altered the code a
By: ali mohammed - why we use the java in ne
By: ali mohammed - why we use the java in ne
By: mizhelle - when I exported the data
By: raul - no output as well, i'm ge
By: Rajesh - thanx very much...
By: Suindu De - Suppose we are executing

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();


WebServices Home | All WebServices Tutorials | Latest WebServices Tutorials

Sponsored Links

If this tutorial doesn't answer your question, or you have a specific question, just ask an expert here. Post your question to get a direct answer.



Bookmark and Share

Comments(1)


1. View Comment

In TimeServer eif = service.getPort(TimeServer.class); Line, i am getting error that TimeServer class can not be resolved.



Now i am aware that i dont have Time Server class and i replaed with my class in webservices. Still i am getting same error. Please help


View Tutorial          By: Vijay at 2015-02-01 08:59:19

Your name (required):


Your email(required, will not be shown to the public):


Your sites URL (optional):


Your comments:



More Tutorials by Emiley J
Password must include both numeric and alphabetic characters - Magento
What is Hadoop?
Returning multiple values from a web service
Tomcat and httpd configured in port 8080 and 80
Java Webservices using Netbeans and Tomcat
Java WebService connected to Database
How to Deploy a Java Web Service
Call a webservice in Java
Java WebService - Create your first web service in Java
package javax.jws does not exist
Getting Started with Android
HTML5 Location - getCurrentPosition() in HTML5
HTML5 Canvas - Using Canvas in HTML5
HTML5 - Introduction
HTML5 Video - Handling video in HTML5

More Tutorials in WebServices
Returning multiple values from a web service
Java Webservices using Netbeans and Tomcat
How to Deploy a Java Web Service
Java WebService connected to Database
package javax.jws does not exist
Java WebService - Create your first web service in Java
Call a webservice in Java

More Latest News
Most Viewed Articles (in WebServices )
Java WebService connected to Database
Call a webservice in Java
Java WebService - Create your first web service in Java
Java Webservices using Netbeans and Tomcat
Returning multiple values from a web service
How to Deploy a Java Web Service
package javax.jws does not exist
Most Emailed Articles (in WebServices)
package javax.jws does not exist
Call a webservice in Java
Java WebService - Create your first web service in Java
Java WebService connected to Database
Java Webservices using Netbeans and Tomcat
How to Deploy a Java Web Service
Returning multiple values from a web service