Когда я запускаю многофункциональное клиентское приложение с JNLP, оно выполняет некоторые запросы к удаленным серверам.Некоторые из этих запросов предназначены для проверки наличия серверов или их отсутствия.Если они недоступны, клиент ловит, например, UnknownHostException
, и это вполне допустимый и ожидаемый случай.
Однако, если я укажу настройки прокси в Панели управления Java (Windows-> Пуск-> Настройка-> Панель управления-> Java), при запуске появится следующее сообщение об ошибке:
![alt text](https://i.stack.imgur.com/TPHS9.png)
Как вы могли видеть, этот диалог совершенно бесполезен, и он не помогает выяснить, в чем дело.Также я попытался установить уровень трассировки в консоли Java на 5, но он также не дал мне никакой полезной информации.
Это диалоговое окно появляется вместе с исключением, которое перехватывается в стартовом приложении.Я повторяю , он перехватывается сразу после его выброса экземпляром HttpClient
(commons-httpclient-3.1), и это диалоговое окно не отображается приложением (более того, оно имеет совершенно другой внешний вид).Вот цитата из кода:
try {
HttpClient client = new HttpClient(connectionManager);
GetMethod getMethod = new GetMethod();
getMethod.setPath(targetUrl.getPath());
HostConfiguration hostConfiguration = getHostConfiguration();
client.executeMethod(hostConfiguration, getMethod);
} catch (Exception e) {
// some logging
}
executeMethod
бросает UnknownHostException
или ConnectTimeoutException
здесь.
Если я включаю «Прямое соединение» в диалоговом окне «Панель управления Java-> Настройки сети», проблема не воспроизводится, но проблема в том, что не всегда возможно использовать прямое соединение, иногда требуется прокси-сервер.
Я обнаружил, что проблема не воспроизводима на Java 1.6, но, к сожалению, я должен решить ее как-то без обновления.Я понимаю, что это очень странная проблема и больше похожа на ошибку в JVM, но я надеюсь, что вы могли бы посоветовать мне что-нибудь, чтобы как-то подавить эти раздражающие диалоги.