Я розробляю простий веб-додаток Spring, який взаємодіє з віддаленим хостом, і я хотів би протестувати його локально за корпоративним проксі. Я використовую плагін gradle "Spring Boot", і питання полягає в тому, як я можу вказати налаштування проксі-сервера для JVM?
Я спробував кілька способів зробити це:
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"
Але, схоже, жоден з них не працює - "NoRouteToHostException" кидає "мережевий" код. Крім того, я додав додатковий код для налагодження аргументів початку JVM:
RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();
List<String> arguments = runtimeMxBean.getInputArguments();
for (String arg: arguments) System.out.println(arg);
І було надруковано лише один аргумент: "-Dfile.encoding = UTF-8".
Якщо я встановив системну властивість у коді:
System.setProperty("http.proxyHost", "X.X.X.X");
System.setProperty("http.proxyPort", "8080");
Все працює просто чудово!