1

アプリケーションを正常にビルドした後、META-INF ディレクトリにある構成ファイルに依存しているため、起動に失敗し、ビルド後にこのディレクトリが jar ファイルに圧縮されるため、構成ファイルにアクセスできなくなります。jar を手動で解凍し、jar を削除してディレクトリの名前を xxx.jar に変更すると、プログラムは問題なく実行されます。SSO ログイン (Kerberos) には構成ファイルが必要です。コードは次のとおりです。

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

パス変数には「plugin/mydomain.pluginame-xxxx.jar/」のようなものが含まれていますが、システムは jar を解凍する必要があるようです。

それは私が間違ってアプリを構築しているのでしょうか? ありがとう

4

1 に答える 1

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

それは今動作します。

于 2010-03-23T09:25:37.830 に答える