HttpUrlConnection.getStatusCode зависает навсегда (без исключения) - PullRequest
0 голосов
/ 28 ноября 2011

Я работаю в ушном приложении Java с модулем веб-приложения. В этом модуле есть класс, который вызывает другое веб-приложение (размещенное на том же сервере приложений - Glassfish 2.1) через HttpUrlConnection.

Проблема в том, что ... Когда я нажимаю на кнопку, которая вызывает метод, чтобы вызвать другое веб-приложение, оно работает нормально. Но когда я открываю слишком много тегов в браузере и быстро нажимаю на ту же кнопку. Это когда я часто вызываю метод (чтобы вызвать другое веб-приложение). Метод висит на линии HttpUrlConnection.getStatusCode().

Я искал об этом в Google ... Я попытался поставить свойство setRequestProperty("Connection", "Close"), а свойство setReadTimeout(5000). Но это не работает.

Я попытался поместить элемент управления семафором в метод (который вызывает другое веб-приложение), поэтому каждый вызов не зависит от вызовов других (я нарушил одновременность).

Я не знаю, в чем конкретно проблема. Но когда я слишком часто вызываю HttpUrlConnection.getStatusCode(), метод зависает навсегда (он не возвращает и не выдает никаких исключений).

Я делаю POST HTTP-вызов. И я использую JDK 6.

1 Ответ

0 голосов
/ 28 ноября 2011

Полагаю, вы имеете в виду метод getResponseCode. Попробуйте также установить тайм-аут соединения.

HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
con.setConnectTimeout(connectTimeout);
con.setReadTimeout(socketTimeout);
...