令人惊讶的是,对于这样一个微不足道的问题,我找不到可行的解决方案。
在 Java servlet 中,我需要连接到外部网站,并且在我正在使用的 doGet 方法中
URL website = new URL(websiteUrl);
为了这。
此代码适用于我的 PC,但在生产 Linux 应用程序服务器上运行时无法连接。
我检查了服务器上的 Firefox 网络设置,它被设置为使用系统代理。在 Linux 终端中使用echo $http_proxy
命令我读取了代理设置并将我的代码更改为:
URL website = new URL("http", proxy, Integer.parseInt(proxyPort), websiteUrl);
设置代理设置硬编码。
现在它可以工作了,但显然我不想对代理设置进行硬编码,而是动态地读取它。
那是我绊倒的地方,因为我在互联网上找到的方法都没有为我工作。
System.getProperty("http.proxyHost")
System.getProperty("http_proxy")
System.setProperty("java.net.useSystemProxies", "true");
没有带来任何结果。
有可行的解决方案吗?知道为什么这些常见的解决方案在我的情况下不起作用吗?
我在 RHEL 6 上运行 WebLogic 10.3.5/JRockit。谢谢。