我已使用EMC Documentum Foundation Classes在documentum存储库中执行一些操作。代码工作正常。我将项目导出为可运行的JAR,然后尝试运行它。但是我收到以下错误,但我无法理解。



这是DocMovementHandler.getSession()的代码
实际上,这不是新代码,而是用于获取文档会话的常规代码

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

最佳答案

InvocationTargetException是包装器。它说:“此反射调用后发生异常”,然后使用getCause()获取内部异常。

堆栈跟踪包含内部异常。这是一个ExceptionInInitializerError。那是另一个包装。它说:“无论您做什么,都会导致一个新类被加载,并且该类的静态初始化程序引发了异常”。

该链中的最后一个例外是NullPointerException。那就是您需要解决的问题。这意味着您需要调试com.documentum这个东西。正如评论所指出的那样,这并非易事。

07-26 02:24