Java:-Dhttps.proxyHost未被使用

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

我有一个java应用程序在EC2中的Tomcat上运行,我希望通过代理到达不同的EC2端点。让我们调用源代码
https://source.com
和目的地
https://destination.com
和代理
https://proxy.com

我的症状如下:

  • 从我的源服务器命中终结点可以工作:
    • wget destination.com
      返回一个输出,包括连接到代理,然后使用200 ok连接到
      destination.com
  • 当我试图通过源上的API使用postman进行调用时,我得到以下错误:
  • 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

    即使导出了这些信息,并且在java_opts(在
    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 API
    http[s].proxyHost
    用于
    HttpURLConnection
    和朋友。您似乎正在使用Apache HTTP客户端,而该客户端显然不支持它们。

    感谢您的回复。你是说我使用ApacheHTTP客户端是因为如果我使用的是JavaAPI,上面的信息足以让它工作吗?很抱歉,我的朋友主要是围绕这个区域编写代码的,我没有所有的背景资料。@Calpis由于引发了异常,您显然正在使用Apache HTTP客户端。谢谢您的回复。你是说我使用ApacheHTTP客户端是因为如果我使用的是JavaAPI,上面的信息足以让它工作吗?很抱歉,我的朋友主要是围绕这个区域编写代码的,我没有所有的背景资料。@Calpis您显然是在使用Apache HTTP客户端,因为引发了异常。