I have an AEM servlet which in turn call google recaptcha web service.
Application makes an ajax call to AEM Servlet and google recaptcha inside the servlet.
Sometimes, google recaptcha server is not reachable and code is throwing HttpHostConnectException ( connection timeout, 500 , 504 service errors thrown) and application hangs.
I do have catch block with IOException and I do see logs with exception stacktrace.
Question : Why does application hangs, even though I am handling the exception?
Question : Is there any way to come out of this and let the application flow , rather than hang ( on front end ajax call or on AEM Server level configuration ??)
How are you maknig the call to the Google Service - is this a Rest call? Are you using Java HTTP APIs?
See this articles as en example of calling a Google Restful service -- Creating an Adobe Experience Manager 6.3 HTL Component that displays data from a Restful Web Service
Using Apache HttpClient api. Yes google service is a rest service.
I just tested a call to Google Service - by following the article listed above. It works nicely.
If the endpoint is down or not responsive - you have to handle that in your logic. THis specific endpoint is up and as you can see - it returns the value - where we write it out in HTL.
As a side note here - we are updating this use case to AEM 6.4 as well.
Using Apache HttpClient api. Yes google service is a rest service. I need to know when httplcient.execute happens and service connection is taking indefinite time, then connection times out and application hangs with 5xx error responses in ajax. How to handle this scenario at AEM server level or service side or ajax side , so that application does not stay in loading state forever.