У меня есть какая-то загадочная проблема с обнаружением прокси системы:
На самом деле, у меня есть правильный код для определения настроек прокси-сервера системы во время выполнения, он также может обрабатывать pac-файлы и настройки http-прокси.
Это работает абсолютно правильно, когда я храню и выполняю все на целевой станции.
НО: я запускаю один маленький кусочек кода на целевой станции и сохраняю все остальное (jars) на другой станции, на которой работает веб-сервер apache. Из основного я загружаю классы с помощью URLClassloader, так что часть кода загружается через сеть, которая также отвечает за обнаружение прокси. Таким образом, селектор прокси по умолчанию дает DIRECT все время, он не может найти правильные настройки.
Я думаю, проблема в том, что я хочу установить
System.setProperty("java.net.useSystemProxies","true");
В загруженном классе и как-то это не работает ... Но когда я sysout значение свойства, это true
.
Я написал небольшую тестовую программу, и единственное отличие состоит в том, что:
A)
Class.forname("a"); -> a is in the classpath
B)
URL[] url = new URL[1];
url[0] = new URL("http://1.2.3.4/dtfw");
URLClassloader u = new URLClassloader(url);
Class.forname("a", true, u);
Обе части кода работают, единственное отличие - в выводе.
У кого-нибудь есть идеи?
Заранее спасибо !!
Zsomi