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
Solved

How do I Check whether the Web Service is up

Posted on 2009-05-06
9
1,786 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
  • 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
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 

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

Portable, direct connect server access

The ATEN CV211 connects a laptop directly to any server allowing you instant access to perform data maintenance and local operations, for quick troubleshooting, updating, service and repair.

Question has a verified solution.

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

I found this questions asking how to do this in many different forums, so I will describe here how to implement a solution using PHP and AJAX. The logical flow for the problem should be: Write an event handler for the first drop down box to get …
Online collaboration is quickly becoming embedded in the workplace, and its benefits are tangible. See what the current landscape looks like and what the future holds for collaboration tools and the future of work.
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:
The purpose of this video is to demonstrate how to set up the WordPress backend so that each page automatically generates a Mailchimp signup form in the sidebar. This will be demonstrated using a Windows 8 PC. Tools Used are Photoshop, Awesome…

790 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