1

私たちが抱えている高レベルの問題はこれです。Apache Waveがインストールされ、企業ネットワーク上で実行されています。サイトのロード、登録、ログイン、Waveの作成、参加までは機能します。しかし、 http://everybodywave.appspot.com/gadget/image/gadget.xmlなどの外部ガジェットをロードできないようです。企業ネットワークの外部にwaveをインストールしていて、ガジェットを問題なくロードできるので、これはプロキシの問題であると確信しています。

私が混乱しているのは; Apache WaveのJVMのプロキシ設定をいくつかの場所で設定しましたが、ガジェットをロードしても機能しません。jvmコマンドラインでhttp.proxyHostとhttp.proxyPortを設定し、環境変数JAVA_OPTIONS、JAVA_OPTS、JETTY_OPTIONS、およびJETTY_OPTSで、ガジェットをロードする呼び出しの直前にSystem.setPropertyを介して設定しました。Apache Waveのjvm内に外部サイトを吐き出すためのコードを追加しましたが、これは機能するため、プロキシ設定は機能しています。しかし、ガジェットはまだそうではありません。

これが私が知ることができる問題に最も近いポイントです: 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

だから多分私の質問は..なぜJettyProxyServlet.Transparentはjvmのhttpプロキシ設定を尊重しないのですか?Jettyプロパティも設定する必要がありますか?

4

1 に答える 1

4

桟橋は、プロキシを設定 ProxyServletするためのカバーの下で桟橋非同期httpクライアントを使用しているようです。には、同封の のカスタム構成を実行するための拡張ポイントも含まれていますが、これは Wave プラットフォームによって公開されていません。次の 2 つのオプションがあると思います。setProxy(Address)ProxyServletHttpClient

  • ProxyServletシステム プロパティなどからプロキシ アドレスを取得し、それをラップされた に設定するカスタマイズされたバージョンの突堤を提供しHttpClientます。これは非常にシンプルで、私が使用するオプションです。
  • 同時に、ウェーブ チームに拡張要求を提出して、この設定を公開することができます。
于 2012-04-06T19:38:01.030 に答える