Solved

How do I Check whether the Web Service is up

Posted on 2009-05-06
9
1,865 Views
Last Modified: 2013-11-18
Hi, I am sending requests to a webservice which exposes methods queryCustomer(), createCustomer(), deleteCustomer(). Before sending a request
I want to make sure that the WebService is up. If the WebService is down, I would queue up the order and wait for the WebService to come up. If I don't make this check and send the order to the WebService (assuming that Service is up), the order will fail and then the upstream system (my application sit between an upstream system and a downstream system) has to sned the order again, which I don't want to happen.

Now the approach I have thought is to send a dummy query request (using queryCustomer) before sending the actual order. If the query is successful, that means the WebService is up, now I can send the actual request. If the query response is Null, it means the WebService is down, and I need to queue the request.

The problem with this approach is that every hit on the web service bears some cost to us, so I want to avoid sending dummy requests.

Is there a way I can check whether the WebService is up without actually calling a method? Can it be achieved by trying to get a reference to endpoint URL of the WebService. When I code (I am using axis 1.4 libraries and used WSDL2Java to generate the binding classes from the WSDL):

samplePort = service.getCustomerPort(url);  

will this call be successful when the Service is down? If the call fails when the Service is down, I can use this as a check without sending the query request to the WebService.

Any suggestions on this please?

Thanks

0
Comment
Question by:LeoKris
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
9 Comments
 
LVL 51

Expert Comment

by:ahoffmann
ID: 24322587
if the webservice does not provide its own health check, you loose
you only may call the ?wsdl to check if this part of the application is reachable at all
if the WSDL file is served by the web service itself, you chances are high tht the web service is alive
0
 

Author Comment

by:LeoKris
ID: 24333202
what do you mean that I call the "?wsdl", because I am calling it from my java code and not typing the URL in explorer.

I think making a dummy call to the webservice is the only way.

Thanks anyways.
0
 
LVL 51

Accepted Solution

by:
ahoffmann earned 500 total points
ID: 24333512
> what do you mean that I call the "?wsdl
I meant to make a request to a proper  URL with ?wsdl query string using your java API's HttpRequest method.
0
Report: Liquid Web beats Amazon, Rackspace & More

A study by performance analyst firm Cloud Spectator finds that Liquid Web beats rivals Amazon, Rackspace and DigitalOcean when it comes to website and cloud application performance.

 

Author Comment

by:LeoKris
ID: 24333625
Sounds good...let me try.. I will let you know if it works.
0
 

Author Comment

by:LeoKris
ID: 24334420
I am trying this code:

String requestUrl= "http://www.w3schools.com/webservices/tempconvert.asmx?WSDL";
            
            try {
            
                  URL url = new URL(requestUrl.toString());
           
                  
                         HttpURLConnection aConnection = (HttpURLConnection) url.openConnection();
      BufferedReader buffer = new BufferedReader(new InputStreamReader(aConnection.getInputStream()));

                       String line = "";
                       while ((line = buffer.readLine()) != null)
                                                   {
                           System.out.println(line);
                       }

But when I run the code, I get this exception:

java.net.UnknownHostException: www.w3schools.com

I can access this WSDL by typing the url in my explorer. Any clue on this?

Thanks
0
 

Author Closing Comment

by:LeoKris
ID: 31578352
thanks for help
0
 
LVL 51

Expert Comment

by:ahoffmann
ID: 24348227
> java.net.UnknownHostException: www.w3schools.com
try to set the Host: header to that www.w3schools.com
0
 

Expert Comment

by:deep_scorpion
ID: 35228670
Hi Leokris,

I am developing a similer tool where I need to check if the webservice is up or down.
can you share your code for the same?
0
 

Author Comment

by:LeoKris
ID: 35249901
Hi deep,
   my code is specific to the webservice I am consuming. I didn't go with the "fetch-the-wsdl" technique. I actually invoked the service passing dummy parameter (customer id for a non existing customer), which returns an error code as "101- Customer Not Found". This confirms that the WebService is Up.

Thanks

Leo
0

Featured Post

2017 Webroot Threat Report

MSPs: Get the facts you need to protect your clients.
The 2017 Webroot Threat Report provides a uniquely insightful global view into the analysis and discoveries made by the Webroot® Threat Intelligence Platform to provide insights on key trends and risks as seen by our users.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Browsers only know CSS so your awesome SASS code needs to be translated into normal CSS. Here I'll try to explain what you should aim for in order to take full advantage of SASS.
Lease-to-own eliminates the expenditure of hardware replacement and allows you to pay off the server over time. Usually, this is much cheaper than leasing servers. Think of lease-to-own as credit without interest.
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…
Learn how to create flexible layouts using relative units in CSS.  New relative units added in CSS3 include vw(viewports width), vh(viewports height), vmin(minimum of viewports height and width), and vmax (maximum of viewports height and width).

738 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question