gpt4 book ai didi

java - Apache wave behind 公司代理;或者 jetty 不尊重代理属性

转载 作者:行者123 更新时间:2023-11-29 03:47:58 26 4
gpt4 key购买 nike

我们遇到的高级问题是这样的。我们已经在公司网络上安装并运行了 Apache Wave。只要我们加载站点、注册、登录、创建和参与 wave,它就可以正常工作。但我似乎无法获得外部小工具,例如 http://everybodywave.appspot.com/gadget/image/gadget.xml , 加载。我确定这是一个代理问题,因为我已经在公司网络外部安装了 wave,并且我能够很好地加载小工具。

我感到困惑的地方是;我已经在几个地方设置了 Apache Wave 的 JVM 代理设置,但是它们正在加载的小工具不起作用。我已经在 jvm 命令行、环境变量 JAVA_OPTIONS、JAVA_OPTS、JETTY_OPTIONS 和 JETTY_OPTS 中设置了 http.proxyHost 和 http.proxyPort,并在调用加载小工具之前通过 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

所以也许我的问题是.. 为什么 Jetty ProxyServlet.Transparent 不支持 jvm 的 http 代理设置?我还需要设置一些 Jetty 属性吗?

最佳答案

看起来 jetty ProxyServlet 在幕后使用 jetty async http 客户端,它有一个 setProxy(Address) 用于设置代理。 ProxyServlet 还包含一个扩展点,用于执行随附的 HttpClient 的自定义配置,但这并未由 Wave 平台公开。我会说你有两个选择:

  • 提供自定义版本的 jetty ProxyServlet,它从系统属性或其他东西中获取代理地址,并将其设置在包装的 HttpClient 上。这非常简单,是我会选择的选项。
  • 同时,您可以向 wave 团队提交增强请求以公开此设置。

关于java - Apache wave behind 公司代理;或者 jetty 不尊重代理属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10047272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com