Java:-Dhttps.proxyHost未被使用
我有一个java应用程序在EC2中的Tomcat上运行,我希望通过代理到达不同的EC2端点。让我们调用源代码Java:-Dhttps.proxyHost未被使用,java,amazon-web-services,tomcat,amazon-ec2,proxy,Java,Amazon Web Services,Tomcat,Amazon Ec2,Proxy,我有一个java应用程序在EC2中的Tomcat上运行,我希望通过代理到达不同的EC2端点。让我们调用源代码https://source.com和目的地https://destination.com和代理https://proxy.com 我的症状如下: 从我的源服务器命中终结点可以工作: wget destination.com返回一个输出,包括连接到代理,然后使用200 ok连接到destination.com 当我试图通过源上的API使用postman进行调用时,我得到以下错误: or
https://source.com
和目的地https://destination.com
和代理https://proxy.com
我的症状如下:
返回一个输出,包括连接到代理,然后使用200 ok连接到wget destination.com
destination.com
org.springframework.web.client.ResourceAccessException:获取请求时发生I/O错误“http://destination.com“:连接到目的地。com:80
...
连接超时;嵌套异常是org.apache.http.conn.ConnectTimeoutException
我做过的事情:
- 验证是否已导出http和https代理
- 我已将这两个变量导出为环境变量:
http\u代理=http://destination.com:80 https\u代理=http://destination.com:80
- 验证java_选项是否也包含代理信息:
- 运行
返回以下内容:ps-ef | grep app_name
-Dhttp.proxyHost=destination.com-Dhttp.proxyPort=80-Dhttps.proxyHost=destination.com-Dhttps.proxyPort=80
- 运行
setenv.sh
中设置)中,API似乎也没有使用代理到达目的地,因为从服务器上,我可以使用wget/curl通过代理到达终点。是否还有另一个我错过的原因/位置导致API不使用代理
我的java版本在这里:java-version
java版本“1.8.0_91”
Java(TM)SE运行时环境(build 1.8.0_91-b14)
Java HotSpot(TM)64位服务器虚拟机(构建25.91-b14,混合模式)
提前感谢。您没有使用Java API
http[s].proxyHost
用于HttpURLConnection
和朋友。您似乎正在使用Apache HTTP客户端,而该客户端显然不支持它们。您没有使用Java APIhttp[s].proxyHost
用于HttpURLConnection
和朋友。您似乎正在使用Apache HTTP客户端,而该客户端显然不支持它们。感谢您的回复。你是说我使用ApacheHTTP客户端是因为如果我使用的是JavaAPI,上面的信息足以让它工作吗?很抱歉,我的朋友主要是围绕这个区域编写代码的,我没有所有的背景资料。@Calpis由于引发了异常,您显然正在使用Apache HTTP客户端。谢谢您的回复。你是说我使用ApacheHTTP客户端是因为如果我使用的是JavaAPI,上面的信息足以让它工作吗?很抱歉,我的朋友主要是围绕这个区域编写代码的,我没有所有的背景资料。@Calpis您显然是在使用Apache HTTP客户端,因为引发了异常。