Java进程使用代理服务器,收集所有内容

phi*_*son 6 java proxy

我在mac上做了一些关于Java 5的Web服务工作(10.6.2)....

自从IT开始使用代理服务器以来,生活变得更加艰难.Java似乎是在拉入系统代理服务器设置,而不是排除列表.这意味着当我尝试为"localhost"调用Web服务时,java会尝试代替他的代理服务器,然后我的调用就会爆炸.我的主机名或IP也是如此.

因此,要在办公室工作,我必须转到系统设置并删除代理配置.然后一切都很好,除了我不能上网.无论我在系统设置中使用排除列表做什么,它都对Java没有影响.

我试过-Djava.net.useSystemProxies = false,它似乎没有做任何事情.

谢谢你的帮助!

Ste*_*n C 2

Java 5 中网络代理配置的权威参考是Java 网络和代理页面。从这个页面来看,Java 5 似乎并不关注主机环境的系统设置。但即使它应该关注它们,事实上这(显然)不适合你,这意味着你不应该依赖它......至少现在是这样。

为了显式配置 Java 5 JVM 以使用 HTTP 的默认代理,您需要设置 Java 系统属性:

  • http.proxyHost- 代理的 DNS 或 IP 地址
  • http.proxyPort- 代理的端口号
  • http.nonProxyHosts- 要直接连接的主机或域的列表,由“管道”字符分隔|

如果您也使用 HTTPS,则还需要配置https.proxyHosthttps.proxyPort

而且,我认为你必须做好准备http.proxyHost才能http.nonProxyHosts产生效果。单独设置后者可能没有效果。

更多详细信息请参见上面链接的页面。我建议在用于启动应用程序的命令脚本中使用“-D”选项。也许您可以让此脚本从系统设置中提取代理参数。

请注意,在 Java 6 及更高版本中,网络代理支持(再次)发生变化,并且 Java 6 JVM在某些情况下从主机环境中获取并使用系统设置。