我们遇到的高级问题是这样的。我们已经在公司网络上安装并运行了 Apache Wave。只要我们加载网站、注册、登录、创建和参与 wave,它就可以工作。但我似乎无法加载外部小工具,例如http://everybodywave.appspot.com/gadget/image/gadget.xml 。我确定这是一个代理问题,因为我已经在公司网络之外安装了 wave,而且我能够很好地加载小工具。
我感到困惑的地方是;我已经在几个地方设置了 Apache Wave 的 JVM 代理设置,但是它们加载小工具不起作用。我已经在 jvm 命令行、环境变量 JAVA_OPTIONS、JAVA_OPTS、JETTY_OPTIONS 和 JETTY_OPTS 中以及在调用加载小工具之前通过 System.setProperty 设置了 http.proxyHost 和 http.proxyPort。我添加了一些代码来在 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 属性?