NoClassDefFoundError:无法初始化org.hibernate.tool.version

时间:2012-11-28 18:21:40

标签: java hibernate hibernate-tools

我正在尝试使用Hibernate Tools对我的Oracle数据库进行逆向工程。但是,当我尝试这样做时,我收到以下错误:

Received a NoClassDefFoundError, propably the console configuration classpath is
incomplete or contains conflicting versions of the same class.
java.lang.NoClassDefFoundError: Could not initialize org.hibernate.tool.version

我读到由于Hibernate Tools Jar和常规Hibernate Jars之间的冲突,可能会发生类似这样的事情。我删除了我的Maven-Import并手动添加了Hibernate-Jar(只有解决方案中描述的核心jar)。
我正在使用Development Milestone 4.0.0 of Hibernate Tools,我将Hibernate版本的工具配置设置为4.0,我使用了当前的Hibernate 4.1.7。我也尝试过Hibernate 4.0.0-Core-Jar,但是每次组合我都会遇到同样的错误 哦,我使用STS 3.1.0(但不要认为它是那样)。

任何提示/建议都将不胜感激。

3 个答案:

答案 0 :(得分:1)

好的,发现错误:我尝试了各种版本,最后hibernate-annotations-3.5.6工作了。必定是产生错误的奇怪组合。无论如何,谢谢你的回答。

答案 1 :(得分:0)

这是一个删除一些hibernate 3.6 jar的问题,这些jars显然与hibernate-tools插件自己的jar相冲突。

以下是成功对数据库表进行逆向工程而不会出现错误所需的操作:

你必须在项目构建路径中只有hibernate3.jar和jdbc驱动程序(postgresql-9.0-blabla.jar),其他的(antlr,dom4j,slf4j,jta等)应该被删除;我没有尝试在JPA模式下进行逆向工程,但我认为你必须在项目的构建路径中保留hinernate-jpa-2.0-api-blabla.jar。

使用完hibernate-tools插件后,你必须包含其他的jar,因为否则hibernate代码将无效(我想,我还没有测试过,但是如果3.6的文档说的那样......)< / p>

答案 2 :(得分:0)

我已经看到了相同的错误但在完全不同的上下文中使用cxf生成的java存根来对付具有更新版本的WSDL的Web服务时,当发生这种情况时,SOAP响应可能具有CXF(或其他一些东西)的xml元素)将尝试序列化为java类/对象,并且当与SOAP响应中的新元素对应的java类不在任何地方时,可能会抛出此错误。

故事的寓意,请确保您使用的Java客户端版本(包含存根的jar集)与服务提供商兼容。