Tworzę prostą aplikację internetową Spring, która komunikuje się ze zdalnym hostem i chciałbym przetestować ją lokalnie za korporacyjnym proxy. Używam wtyczki Gradle "Spring Boot" i pytanie brzmi: jak mogę określić ustawienia proxy dla JVM?
Wypróbowałem kilka sposobów, aby to zrobić:
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"
Ale wygląda na to, że żaden z nich nie działa - „NoRouteToHostException” wrzuca kod „sieciowy”. Dodałem również dodatkowy kod do debugowania argumentów startowych JVM:
RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();
List<String> arguments = runtimeMxBean.getInputArguments();
for (String arg: arguments) System.out.println(arg);
Został wydrukowany tylko jeden argument: „-Dfile.encoding = UTF-8”.
Jeśli ustawię właściwość systemu w kodzie:
System.setProperty("http.proxyHost", "X.X.X.X");
System.setProperty("http.proxyPort", "8080");
Wszystko działa dobrze!