NoClassDefFound错误是一个模糊的错误,通常隐藏着更严重的问题。它是不一样的ClassNotFoundException(被抛出时,该类只是普通的不存在)。
如javadocs所示,NoClassDefFound 可能指示该类不存在,但是通常在类加载器为该类加载字节并在其上调用“ defineClass”后抛出该类。还要仔细检查你的完整堆栈跟踪是否有其他线索或可能的“原因”异常(尽管你的特定回溯没有显示任何异常)。
当你遇到NoClassDefFoundError时,首先要看的是类的静态位,即在类定义期间发生的任何初始化。如果失败,它将抛出NoClassDefFoundError-应该抛出ExceptionInInitializerError并指出问题的详细信息,但以我的经验,这些很少见。它只会在第一次尝试定义类时执行ExceptionInInitializerError,之后将仅抛出NoClassDefFound。因此,请查看较早的日志。
因此,我建议你查看该HibernateTransactionInterceptor行中的代码,并查看其要求。似乎无法定义类SpringFactory。因此,也许可以检查该类中的初始化代码,这可能会有所帮助。如果可以调试,请在(17)的最后一行将其停止并进行调试,以便尝试查找导致异常的确切行。另外,请在日志中向上检查,如果你非常幸运,可能会出现ExceptionInInitializerError。



