2010-07-01 15 views
15

मैं एक ग्रहण प्लगइन पर काम कर रहा हूं जिसे दूरस्थ सर्वर से कनेक्ट करने की आवश्यकता है। मैं प्रॉक्सीहोस्ट और पोर्ट प्राप्त करने के लिए ग्रहण नेटवर्क सेटिंग्स का उपयोग करने की कोशिश कर रहा हूं। मैं स्थानीय मशीन में सेट होने पर IProxyService और IProxyData कक्षाओं और "मूल" प्रॉक्सी सेटिंग्स का उपयोग करके "मैन्युअल" सेटिंग्स प्रॉक्सी प्राप्त करने में सक्षम हूं। समस्या तब होती है जब प्रॉक्सीप्रोवाइडर मूल पर सेट होता है और प्रॉक्सीहोस्ट और पोर्ट मान ग्रहण सेटिंग्स में गतिशील के रूप में दिखाए जाते हैं। क्या उन मूल्यों तक पहुंचने का कोई तरीका है?ग्रहण नेटवर्क सेटिंग्स से गतिशील प्रॉक्सी का उपयोग कैसे करें?

धन्यवाद।

+1

लक्ष्य होस्ट पर आधारित जावास्क्रिप्ट फ़ंक्शन द्वारा गतिशील = गणना नहीं है? क्या आपने IProxyService.select (URI) विधि का उपयोग करने का प्रयास किया है और वहां अपना लक्ष्य यूआरएल निर्दिष्ट किया है? –

उत्तर

0

आपकी समस्या नहीं है कि आपके प्लग-इन कनेक्ट चरण को एक्सीप्से से पहले रनटाइम पर निर्धारित करने से पहले निष्पादित किया जाता है? एक्लिप्स की नेटवर्क सेटिंग्स की स्थिर और गतिशील परिभाषाओं के बीच मैं यही अंतर देखता हूं।

0

प्रॉक्सी सेट करते समय निम्नलिखित मेरे लिए हमेशा काम करता रहा है।

System.setProperty("https.proxyHost", "myproxy.domain.com"); 
System.setProperty("https.proxyPort", "myport"); 
1

प्रतिक्रियाओं लोगों के लिए धन्यवाद,

यह ग्रहण में IProxyService वर्ग का उपयोग किया जा सकता है। नीचे दिए गए कोड स्निपेट्स ने कुछ मामलों में प्रतिबिंब का उपयोग किया है जिन्हें आप अनदेखा कर सकते हैं। इसके अलावा इस लिंक (http://www.vogella.de/blog/2009/12/08/eclipse-rcp-proxy-preference/)

1 पर एक नज़र डालें) प्रॉक्सी पर नजर

private ServiceTracker getProxyTracker() throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { 
    if (proxyTracker != null) 
     return proxyTracker; 

    String proxyServiceClassName = "org.eclipse.core.net.proxy.IProxyService"; 
    String bundleClassName = "org.osgi.framework.Bundle"; 
    Class bundleClass = Class.forName(bundleClassName); 
    Method getBundleContextMth = bundleClass.getMethod("getBundleContext", null); 
    getBundleContextMth.setAccessible(true); 

    BundleContext bundleCntx = (BundleContext) getBundleContextMth.invoke(bundle, null); 
    proxyTracker = new ServiceTracker(bundleCntx, proxyServiceClassName, null); 
    proxyTracker.open(); 

    return proxyTracker; 
} 

2) की जांच करने के लिए "isProxiesEnabled" विधि का प्रयोग करें यदि प्रॉक्सी

3 सक्षम किया गया है) के आधार पर प्राप्त करें ग्रहण संस्करण ग्रहण प्रॉक्सी जानकारी (होस्ट, उपयोगकर्ता आईडी, पासवर्ड इत्यादि) तक पहुंचने के लिए "getProxyDataForHost" या "select" विधि का उपयोग करें।

संबंधित मुद्दे