2010-03-18 5 views
1

après la création de mon application, le démarrage échoue car elle repose sur des fichiers de configuration situés dans le répertoire META-INF et après la génération, ce répertoire est compressé dans un fichier jar, ce qui l'empêche pour accéder aux fichiers de configuration. Après avoir décompressé manuellement le fichier jar, supprimé le fichier jar et renommé le répertoire avec xxx.jar, le programme s'exécute sans problème. Les fichiers de configuration sont requis pour la connexion SSO (Kerberos). Voici le code:L'exécution de l'application Eclipse RCP échoue

Bundle bundle = Platform.getBundle(Application.PLUGIN_ID); 
String path; 
try { 
    path = new URL(bundle.getLocation().substring(18)).getPath(); 
} catch (MalformedURLException e1) { 
    System.out.println(e1); 
    path=""; 
} 
System.setProperty("java.security.auth.login.config",path+"META-INF/jaas-win.config"); 

variable Path contient quelque chose comme "plug-in/mydomain.pluginame-xxxx.jar /" Mais il semble que le système a besoin du pot décompressé.

Est-ce que je fais mal la construction de l'application? Merci

Répondre

0

Après avoir modifié le code:

ClassLoader cl = Thread.currentThread().getContextClassLoader(); 
    URL authconf = null; 
    authconf= cl.getResource("META-INF/jaas-win.config"); 

    if (authconf == null) { 
     loginContext = null; 
     return; 
    } 

    String p; 
    try { 
     p = URLDecoder.decode(authconf.toExternalForm(), "UTF-8"); 
     System.setProperty("java.security.auth.login.config", p); 
    } catch (UnsupportedEncodingException e1) { 
     loginContext = null; 
     return; 
    } 

ça marche maintenant.