2010-07-01 19 views
15

Ich arbeite an einem Eclipse-Plugin, das eine Verbindung zu einem Remote-Server herstellen muss. Ich versuche, die Eclipse-Netzwerkeinstellungen zu verwenden, um ProxyHost und Port zu erhalten. Ich bin in der Lage gewesen, den "Manuellen" Einstellungs-Proxy unter Verwendung der Klassen IProxyService und IProxyData und auch "Native" Proxy-Einstellungen zu erhalten, wenn diese auf dem lokalen Rechner eingestellt sind. Das Problem tritt auf, wenn der proxyProvider auf Nativ festgelegt ist und die Werte proxyHost und Port in den Eclipse-Einstellungen als dynamisch angezeigt werden. Gibt es eine Möglichkeit, auf diese Werte zuzugreifen?Zugriff auf dynamische Proxies über Eclipse-Netzwerkeinstellungen?

Danke.

+1

Ist nicht dynamisch = berechnet von JavaScript-Funktion, basierend auf Ziel-Host? Haben Sie versucht, die IProxyService.select (URI) -Methode zu verwenden und dort Ihre Ziel-URL anzugeben? –

Antwort

0

Ist Ihr Problem nicht, dass Ihre Plug-in-Verbindungsphase ausgeführt wird, bevor Eclipse den Host zur Laufzeit festlegt? Das ist der einzige Unterschied zwischen den statischen und dynamischen Definitionen der Netzwerkeinstellungen von Eclipse.

0

Das folgende hat immer funktioniert, wenn ich einen Proxy einstelle.

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

Danke für die Antworten Jungs,

Dies kann mit der IProxyService Klasse in Eclipse erfolgen. Die folgenden Code-Snippets haben in einigen Fällen Reflektionen verwendet, die Sie ignorieren können. Werfen Sie auch einen Blick auf diesen Link (http://www.vogella.de/blog/2009/12/08/eclipse-rcp-proxy-preference/)

1) Holen Sie sich das Proxy-Tracker

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) Verwenden Sie die "isProxiesEnabled" Methode zu überprüfen, ob Proxy auf die Abhängigkeit aktiviert ist

3) Eclipse-Version verwenden Sie die "getProxyDataForHost" oder "Select" -Methode für den Zugriff auf die Eclipse-Proxy-Informationen (Host, UserID, Passwort usw.).

Verwandte Themen