Estoy desarrollando una aplicación web Spring simple que se comunica con un host remoto y me gustaría probarla localmente detrás del proxy corporativo. Utilizo el complemento de gradle "Spring Boot" y la pregunta es ¿cómo puedo especificar la configuración del proxy para JVM?
He probado varias formas de hacerlo:
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"
Pero parece que ninguno de ellos funciona: "NoRouteToHostException" incluye código de "red". Además, he agregado un código adicional para depurar los argumentos de inicio de JVM:
RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();
List<String> arguments = runtimeMxBean.getInputArguments();
for (String arg: arguments) System.out.println(arg);
Y solo se imprimió un argumento: "-Dfile.encoding = UTF-8".
Si configuro la propiedad del sistema en el código:
System.setProperty("http.proxyHost", "X.X.X.X");
System.setProperty("http.proxyPort", "8080");
¡Todo funciona bien!