0

EMC Documentum Foundation Classes を使用して、documentum リポジトリでいくつかのアクションを実行しました。コードは正常に機能していました。プロジェクトを実行可能な JAR としてエクスポートし、実行しようとしました。ただし、次のエラーが発生し、理解できません。

ここに画像の説明を入力

これが DocMovementHandler.getSession() のコードです。実際には、これは新しいコードではなく、documentum セッションを取得するための通常のコードです。

public IDfSession getSession(String userName, String password)
{
    DfClientX clientx = null;
    IDfClient client = null;
    IDfSession session = null;
    try {
        // create a client object using a factory method in DfClientX
        clientx = new DfClientX();
        client = clientx.getLocalClient();   //takes time

        // call a factory method to create the session manager
        IDfSessionManager sessionMgr = client.newSessionManager();

        // create an IDfLoginInfo object and set its fields
        IDfLoginInfo loginInfo = clientx.getLoginInfo();
        loginInfo.setUser(userName);
        loginInfo.setPassword(password);

        // set single identity for all docbases
        sessionMgr.setIdentity("xyz_repo", loginInfo);
        session = sessionMgr.getSession("xyz_repo");   //takes time 
        //sessionMgr.beginTransaction();
        System.out.println("Session obtaied.");         
    }
    catch (DfServiceException dse)
    {
        DfLogger.debug(this, "Error while beginning transaction. ", null, dse);
        dse.printStackTrace();
    }

    catch (Exception e) 
    {
        DfLogger.debug(this, "Error while creating a new session. ", null, e);
        e.printStackTrace();
    } 
    return session;
}

そしてその38行目はclient = clientx.getLocalClient();

4

6 に答える 6

3

InvocationTargetExceptionラッパーです。「このリフレクション呼び出しの背後で例外が発生しました」と表示され、 getCause() を使用して内部例外を取得します。

スタック トレースに内部例外が含まれています。それはExceptionInInitializerErrorです。それは別のラッパーです。「あなたがしたことは何でも、新しいクラスがロードされ、そのクラスの静的初期化子が例外をスローしました」と書かれています。

このチェーンの最後の例外はNullPointerException. それはあなたが解決する必要があるものです。つまり、このcom.documentumことをデバッグする必要があります。コメントが指摘したように、それは簡単ではありません。

于 2013-11-15T15:21:57.043 に答える
1

最も可能性の高い問題は次のとおりです。

名前がヒットしたクラスの 1 つの静的イニシャライザは、nullキーまたは値のnullいずれかを持つエントリを に追加しています。これは、キーまたは値Hashtableを許可しませんnull

一連の永続的なプロパティなどを保存する場所としてを使用してHashtableいます。私の推測では、エントリの 1 つの値は でしたnull(これは、一部の機能が利用できないなどを示す完全に合理的な方法です)。 )。

現在非推奨Hashtableになっている は、より最新の に置き換える必要がありますHashMap

単純に変更できないライブラリの場合は、ライブラリ全体を更新されたバージョンに置き換える必要があります。

于 2013-11-15T15:29:54.380 に答える
0

DfPreferences は、DFC 構成ファイル dfc.properties をロードするクラスです。何か問題があるに違いありません。

于 2013-11-28T13:25:33.407 に答える
0

ああ、私は根本的な原因を特定しませんでしたが、常に確実に機能する解決策を見つけました. EMC は、Documentum プロジェクトと連携するための Documentum Composer と呼ばれる Eclipse のフレーバーを提供しています。Eclipse のバリエーション以降、通常の Java プロジェクト、動的 Web プロジェクト、Web サービスなど、他のタイプのプロジェクトをこれで作成できます。そこで、Documetnum Composer でプロジェクトを再作成し、それを JAR としてエクスポートしたところ、うまくいきました。

私はこれを何度も試しましたが、これは常に機能しました。

注意すべき点:

  • Composer インストール フォルダの dfc.properties ファイルを Content Server のファイルに置き換える必要があります。
  • Composer の Export to JAR ウィザードは、Eclipse のものとは少し異なります。
于 2013-11-28T16:12:02.450 に答える