मैं सरल स्प्रिंग वेब एप्लिकेशन विकसित कर रहा हूं जो दूरस्थ होस्ट के साथ संचार करता है और मैं इसे स्थानीय रूप से कॉर्पोरेट प्रॉक्सी के पीछे परीक्षण करना चाहूंगा। मैं "स्प्रिंग बूट" ग्रेडल प्लगइन का उपयोग करता हूं और सवाल यह है कि मैं जेवीएम के लिए प्रॉक्सी सेटिंग्स कैसे निर्दिष्ट कर सकता हूं?
मेरे पास इसे करने के कई तरीके हैं:
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");
सब कुछ ठीक काम करता है!