我已使用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
这个东西。正如评论所指出的那样,这并非易事。