Apache волна за прокси компании; или причал не уважает свойства прокси
Проблема высокого уровня, которую мы имеем, заключается в следующем. У нас установлена и работает Apache Wave в нашей корпоративной сети. Это работает до тех пор, пока мы загружаем сайт, регистрируемся, авторизируемся, создаем и участвуем в волнах. Но я не могу загрузить внешние гаджеты, такие как http://everybodywave.appspot.com/gadget/image/gadget.xml. Я уверен, что это проблема с прокси, потому что я установил волну вне корпоративной сети, и я могу нормально загружать гаджеты.
Где я в замешательстве; Я установил параметры прокси-сервера JVM в Apache Wave в нескольких местах, но, тем не менее, они загружают гаджеты не работает. Я установил http.proxyHost и http.proxyPort в командной строке jvm, в переменных окружения JAVA_OPTIONS, JAVA_OPTS, JETTY_OPTIONS и JETTY_OPTS, а также через System.setProperty прямо перед вызовом для загрузки гаджета. Я добавил немного кода, чтобы выложить внешний сайт в jvm Apache Wave, и это работает, поэтому настройки прокси работают. Но гаджеты все еще не делают.
Вот самая близкая точка к проблеме, которую я могу сказать: https://svn.apache.org/repos/asf/incubator/wave/trunk/src/org/waveprotocol/box/server/ServerMain.java который я получаю сообщение отладки где-то ниже вызова: (строка 121; в GadgetProxyServlet)
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
proxyServlet.service(req, res);
Отладка:
[java] 2012-04-06 10:47:25.197:WARN:oejsKwbs.ServerMain$GadgetProxyServlet, annotation=[none]]:java.net.ConnectException: Connection timed out
Поэтому, может быть, мой вопрос... почему Jetty ProxyServlet. Прозрачный не соблюдает настройки http прокси jvm? Мне тоже нужно установить какое-нибудь свойство Jetty?
1 ответ
Похоже на причал ProxyServlet
использует http-клиент Jetty Async под крышками, который имеет setProxy(Address)
для настройки прокси. ProxyServlet
также содержит точку расширения для выполнения пользовательской конфигурации вложенного HttpClient
, но это не раскрывается платформой Wave. Я бы сказал, что у вас есть два варианта:
- Предоставить индивидуальную версию причала
ProxyServlet
который берет прокси-адрес из системных свойств или что-то и устанавливает его на завернутыйHttpClient
, Это довольно просто и я бы выбрал вариант. - В то же время вы можете подать запрос на усовершенствование в команду Wave, чтобы раскрыть этот параметр.