Ich entwickle eine einfache Spring-Webanwendung, die mit dem Remote-Host kommuniziert, und möchte sie lokal hinter dem Unternehmens-Proxy testen. Ich verwende das Gradle-Plugin "Spring Boot" und die Frage ist, wie ich Proxy-Einstellungen für JVM festlegen kann.
Ich habe verschiedene Möglichkeiten ausprobiert:
gradle -Dhttp.proxyHost=X.X.X.X -Dhttp.proxyPort=8080 bootRun
export JAVA_OPTS="-Dhttp.proxyHost=X.X.X.X -Dhttp.proxyPort=8080"
export GRADLE_OPTS="-Dhttp.proxyHost=X.X.X.X -Dhttp.proxyPort=8080"
Aber es scheint, als ob keiner von ihnen funktioniert - "NoRouteToHostException" wirft "Netzwerk" -Code ein. Außerdem habe ich zusätzlichen Code zum Debuggen von JVM-Startargumenten hinzugefügt:
RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();
List<String> arguments = runtimeMxBean.getInputArguments();
for (String arg: arguments) System.out.println(arg);
Und nur ein Argument wurde gedruckt: "-Dfile.encoding = UTF-8".
Wenn ich die Systemeigenschaft im Code festlege:
System.setProperty("http.proxyHost", "X.X.X.X");
System.setProperty("http.proxyPort", "8080");
Alles funktioniert gut!