2010-03-18 3 views
1

после успешного создания моего приложения старт терпит неудачу, поскольку он зависит от файлов конфигурации, которые находятся в каталоге META-INF, и после сборки этот каталог зашифрован в файл jar, следовательно, он не может для доступа к файлам конфигурации. После ручной распаковки банки, удаляя банку и переименовывая каталог с помощью xxx.jar, программа запускается без проблем. Конфигурационные файлы необходимы для входа в систему SSO (Kerberos). Вот код:Приложение RCP приложения Eclipse, работающее с ошибкой

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"); 

переменная Path содержит что-то вроде «плагин/mydomain.pluginame-xxxx.jar /» Но, кажется, что система нуждается в баночку распаковали.

Это я неправильно создаю приложение? Благодаря

ответ

0

После изменения кода:

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; 
    } 

это работает в настоящее время.

Смежные вопросы