Estou desenvolvendo um aplicativo da web Spring simples que se comunica com o host remoto e gostaria de testá-lo localmente por meio do proxy corporativo. Eu uso o plugin gradle "Spring Boot" e a questão é como posso especificar as configurações de proxy para JVM?
Eu tentei várias maneiras de fazer isso:
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"
Mas parece que nenhum deles funciona - "NoRouteToHostException" coloca o código de "rede". Além disso, adicionei algum código extra para depurar argumentos de início JVM:
RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();
List<String> arguments = runtimeMxBean.getInputArguments();
for (String arg: arguments) System.out.println(arg);
E apenas um argumento foi impresso: "-Dfile.encoding = UTF-8".
Se eu definir a propriedade do sistema no código:
System.setProperty("http.proxyHost", "X.X.X.X");
System.setProperty("http.proxyPort", "8080");
Tudo funciona muito bem!