2010-07-01 13 views
15

Estoy trabajando en un plugin de Eclipse que necesita conectarse a un servidor remoto. Estoy tratando de usar la configuración de red de Eclipse para obtener el proxyHost y el puerto. Pude obtener el proxy de configuración "Manual" utilizando las clases IProxyService y IProxyData y también la configuración de proxy "nativo" si estaba configurada en la máquina local. El problema ocurre cuando proxyProvider se establece en Native y los valores de proxyHost y Port se muestran como dinámicos en la configuración de Eclipse. ¿Hay alguna manera de acceder a esos valores?¿Cómo acceder a los proxies dinámicos desde la configuración de red de eclipse?

Gracias.

+1

Is not dynamic = calculado por la función javascript, basado en el host de destino? ¿Has intentado utilizar el método IProxyService.select (URI) y especificas tu URL objetivo allí? –

Respuesta

0

¿No es su problema que la fase de conexión de su complemento se ejecuta antes de que Eclipse determine el host en tiempo de ejecución? Esa es la única diferencia que veo entre las definiciones estáticas y dinámicas de la configuración de red de Eclipse.

0

Lo siguiente siempre me ha funcionado al configurar un proxy.

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

Gracias por las respuestas, chicos

Esto se puede hacer utilizando la clase IProxyService en Eclipse. Los fragmentos de código a continuación han usado la reflexión en algunos casos que puede ignorar. También echa un vistazo a este enlace (http://www.vogella.de/blog/2009/12/08/eclipse-rcp-proxy-preference/)

1) Obtener el rastreador de proxy

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) Utilice el método "isProxiesEnabled" para comprobar si proxy está habilitado

3) En función de la la versión de eclipse utiliza el método "getProxyDataForHost" o "select" para acceder a la información del proxy del eclipse (host, ID de usuario, contraseña, etc.).

Cuestiones relacionadas