500, 504 service errors on ajax calls

Avatar

Avatar

sreenu539

Avatar

sreenu539

sreenu539

25-04-2018

Hi,

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 ??)

Thanks,

Sri

Replies

Highlighted

Avatar

Avatar

smacdonald2008

Total Posts

12.7K

Likes

1.4K

Correct Answer

2.3K

Avatar

smacdonald2008

Total Posts

12.7K

Likes

1.4K

Correct Answer

2.3K
smacdonald2008

26-04-2018

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

Highlighted

Avatar

Avatar

sreenu539

Avatar

sreenu539

sreenu539

26-04-2018

Using Apache HttpClient api. Yes google service is a rest service.

Highlighted

Avatar

Avatar

smacdonald2008

Total Posts

12.7K

Likes

1.4K

Correct Answer

2.3K

Avatar

smacdonald2008

Total Posts

12.7K

Likes

1.4K

Correct Answer

2.3K
smacdonald2008

26-04-2018

I just tested a call to Google Service - by following the article listed above. It works nicely.

Client.png

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.

Highlighted

Avatar

Avatar

sreenu539

Avatar

sreenu539

sreenu539

26-04-2018

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.

Highlighted

Avatar

Avatar

smacdonald2008

Total Posts

12.7K

Likes

1.4K

Correct Answer

2.3K

Avatar

smacdonald2008

Total Posts

12.7K

Likes

1.4K

Correct Answer

2.3K
smacdonald2008

30-04-2018

If the code that calls this is Java, then handle it. This is more of a Java question then an AEM question:

Java HTTP Client Request with defined timeout - Stack Overflow