首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java InvocationTargetException

Java InvocationTargetException
EN

Stack Overflow用户
提问于 2013-11-15 15:01:24
回答 6查看 2.8K关注 0票数 0

我已经使用EMC Documentum基础类在documentum存储库中执行一些操作。密码正常。我将项目导出为一个可运行的JAR,然后尝试运行它。然而,我得到了跟随错误,我无法理解它。

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

代码语言:javascript
复制
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();

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-11-28 16:12:02

欧凯,我没有指出根本原因,但找到了解决办法,肯定会奏效的每一次。EMC提供了一种称为Documentum的Eclipse风格,用于处理Documentum项目。由于Eclipse的变化,我们可以在其中创建其他类型的项目,如普通Java项目、动态web项目、web服务。因此,我在Documetnum Composer中重新创建了我的项目,并将其导出为JAR,然后就成功了。

我试过很多次了,而且一直起作用。

值得注意的一点是:

  • 必须将Composer安装文件夹中的dfc.properties文件替换为Content中的一个
  • Composer中的Export向导与Eclipse中的向导略有不同
票数 0
EN

Stack Overflow用户

发布于 2013-11-15 15:21:57

InvocationTargetException是一个包装器。它说,“在这个反射调用之后发生了一个异常”,您可以使用getCause()来获取内部异常。

堆栈跟踪包含内部异常。这是一个ExceptionInInitializerError。那是另一个包装纸。它说,“不管您做了什么,都会加载一个新的类,而该类的静态初始化程序会抛出一个异常”。

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

票数 3
EN

Stack Overflow用户

发布于 2013-11-15 15:29:54

以下是最可能的问题:

您所击名称中的一个类中的静态初始化器是将一个带有null键或null值的条目添加到Hashtable中,这不允许null键或值。

它使用Hashtable作为存储一系列持久属性的地方,我的猜测是其中一个条目的值是null (这是表示某些特性不可用或类似的完全合理的方法)。

现在被废弃的Hashtable需要被更现代的HashMap所取代。

如果它是一个库,您不能仅仅修改它,您应该用一个更新的版本替换整个库。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20004011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档