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, чтобы раскрыть этот параметр.
Другие вопросы по тегам