2017-05-20 2 views
0

Ich habe eine Java-Anwendung auf Tomcat in EC2 ausgeführt und möchte einen anderen EC2-Endpunkt über einen Proxy erreichen. Nennen wir das die Quelle https://source.com und Ziel https://destination.com und der Proxy https://proxy.comJava: -Dhttps.proxyHost wird nicht verwendet

Das Symptom Ich habe ist folgendes:

  1. Schlagen Sie den Endpunkt aus meinem Quellserver funktioniert:
    • wget destination.com eine Ausgabe einschließlich Verbindungszurück an den Proxy und dann an destination.com mit einem 200 ok verbinden.
  2. Wenn ich versuche, den Anruf zu tätigen über die API auf die Quelle mit Postbote, erhalte ich die folgenden Fehler:

org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://destination.com": Connect to destination.com:80 ... connect timed out; nested exception is org.apache.http.conn.ConnectTimeoutException

Dinge, die ich getan habe:

  • Überprüfen Sie, dass der HTTP- und HTTPS-Proxy exportiert wird
    • Ich habe diese beiden als Umgebungsvariable exportiert:
    • http_proxy=http://destination.com:80 https_proxy=http://destination.com:80
  • Stellen Sie sicher, dass JAVA_OPTS die Proxy-Informationen umfassen auch:

    • läuft ps -ef | grep app_name gibt Folgendes zurück:

    • -Dhttp.proxyHost=destination.com -Dhttp.proxyPort=80 -Dhttps.proxyHost=destination.com -Dhttps.proxyPort=80

Auch mit diesen Informationen exportierten und in dem JAVA_OPTS (in dem setenv.sh), scheint es, wie die API ist die Proxy nicht mit dem Ziel zu erreichen, weil von dem Server, ich wget verwenden können/curl Erreichen Sie den Endpunkt über den Proxy. Könnte es einen anderen Grund/Standort geben, den ich verpasst habe, der dazu führt, dass die API den Proxy nicht verwendet?

Meine Java-Version hier: java -version java version "1.8.0_91" Java(TM) SE Runtime Environment (build 1.8.0_91-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

Vielen Dank im Voraus.

Antwort

2

Sie verwenden nicht die Java-API. http[s].proxyHost ist für HttpURLConnection und Freunde. Sie scheinen den Apache-HTTP-Client zu verwenden, der sie offensichtlich nicht unterstützt.

+0

danke für Ihre Antwort. Wollen Sie damit sagen, dass ich den Apache HTTP Client verwende, weil die oben genannten Informationen ausreichen, um die Java API zu verwenden? Entschuldigung, mein Freund hat hauptsächlich in diesem Bereich gecodiert und ich habe nicht den ganzen Hintergrund dazu. – Calpis

+0

@Calpis Sie verwenden offensichtlich den Apache HTTP-Client wegen der ausgelösten Ausnahme. – EJP

+0

AH verstanden, danke für die wertvolle Einsicht! – Calpis

Verwandte Themen