2012-06-25 24 views
4

我試圖從我的數據庫中生成pojos,但我在eclipse indigo 3.7.2與hibernate工具3.4插件安裝時得到以下錯誤(s)和休眠3.6.10庫(他們似乎是所有)在我的構建路徑我試圖生成pojos或與休眠工具映射時收到noclassdeffounderror

短版:

org.hibernate.console.HibernateConsoleRuntimeException: Received a NoClassDefFoundError, probably the console configuration classpath is incomplete or contains conflicting versions of the same class 
Received a NoClassDefFoundError, probably the console configuration classpath is incomplete or contains conflicting versions of the same class 
    java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.cfg.reveng.OverrideRepository 
    Could not initialize class org.hibernate.cfg.reveng.OverrideRepository 
    java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.cfg.reveng.OverrideRepository 
    Could not initialize class org.hibernate.cfg.reveng.OverrideRepository 

MY從項目構建路徑是(按順序,如果該事項)罐:

  • hibernate-distribution-3.6.10.Final \ hibernate3.jar
  • hibernate-distribution-3.6.10.Final \ lib \ required \ antlr-2.7.6.jar
  • hibernate-distribution-3.6.10.Final \ lib \ required \ commons-collections-3.1.jar
  • hibernate-distribution-3.6.10.Final \ lib \ required \ dom4j-1.6.1.jar
  • hibernate-distribution-3.6.10.Final \ lib \ required \ javassist-3.12.0.GA.jar
  • hibernate-distribution-3.6.10.Final \ lib \ required \ jta-1.1.jar
  • hibernate-distribution-3.6.10.Final \ lib \ required \ slf4j-api-1.6.1.jar
  • PostgreSQL相關9.0-802.jdbc3.jar

我注意到,休眠工具插件在其插件一些較舊的罈子BTW文件夾 (例如是版本1.5.8 SLF4J)在此期間,我會嘗試buddyloading

師範大學堆棧跟蹤

ENTRY org.hibernate.eclipse.console 4 666 2012-06-25 04:23:55.946 
!MESSAGE org.hibernate.console.HibernateConsoleRuntimeException: Received a NoClassDefFoundError, probably the console configuration classpath is incomplete or contains conflicting versions of the same class 
!STACK 0 
org.hibernate.console.HibernateConsoleRuntimeException: Received a NoClassDefFoundError, probably the console configuration classpath is incomplete or contains conflicting versions of the same class 
    at org.jboss.tools.hibernate3_6.console.ConsoleExtension3_6.launchExporters(ConsoleExtension3_6.java:149) 
    at org.hibernate.eclipse.launch.CodeGenerationLaunchDelegate.launch(CodeGenerationLaunchDelegate.java:270) 
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:854) 
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:703) 
    at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:928) 
    at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1132) 
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.cfg.reveng.OverrideRepository 
    at org.jboss.tools.hibernate3_6.console.ConsoleExtension3_6$3.execute(ConsoleExtension3_6.java:249) 
    at org.hibernate.console.execution.DefaultExecutionContext.execute(DefaultExecutionContext.java:63) 
    at org.jboss.tools.hibernate3_6.HibernateExtension3_6.execute(HibernateExtension3_6.java:201) 
    at org.jboss.tools.hibernate3_6.console.ConsoleExtension3_6.buildConfiguration(ConsoleExtension3_6.java:239) 
    at org.jboss.tools.hibernate3_6.console.ConsoleExtension3_6.runExporters(ConsoleExtension3_6.java:169) 
    at org.jboss.tools.hibernate3_6.console.ConsoleExtension3_6.launchExporters(ConsoleExtension3_6.java:126) 
    ... 6 more 
!SUBENTRY 1 org.hibernate.eclipse.console 4 666 2012-06-25 04:23:55.946 
!MESSAGE org.hibernate.console.HibernateConsoleRuntimeException: Received a NoClassDefFoundError, probably the console configuration classpath is incomplete or contains conflicting versions of the same class 
!STACK 0 
org.hibernate.console.HibernateConsoleRuntimeException: Received a NoClassDefFoundError, probably the console configuration classpath is incomplete or contains conflicting versions of the same class 
    at org.jboss.tools.hibernate3_6.console.ConsoleExtension3_6.launchExporters(ConsoleExtension3_6.java:149) 
    at org.hibernate.eclipse.launch.CodeGenerationLaunchDelegate.launch(CodeGenerationLaunchDelegate.java:270) 
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:854) 
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:703) 
    at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:928) 
    at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1132) 
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.cfg.reveng.OverrideRepository 
    at org.jboss.tools.hibernate3_6.console.ConsoleExtension3_6$3.execute(ConsoleExtension3_6.java:249) 
    at org.hibernate.console.execution.DefaultExecutionContext.execute(DefaultExecutionContext.java:63) 
    at org.jboss.tools.hibernate3_6.HibernateExtension3_6.execute(HibernateExtension3_6.java:201) 
    at org.jboss.tools.hibernate3_6.console.ConsoleExtension3_6.buildConfiguration(ConsoleExtension3_6.java:239) 
    at org.jboss.tools.hibernate3_6.console.ConsoleExtension3_6.runExporters(ConsoleExtension3_6.java:169) 
    at org.jboss.tools.hibernate3_6.console.ConsoleExtension3_6.launchExporters(ConsoleExtension3_6.java:126) 
    ... 6 more 
!SUBENTRY 1 org.hibernate.eclipse.console 4 666 2012-06-25 04:23:55.946 
!MESSAGE java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.cfg.reveng.OverrideRepository 
!STACK 0 
java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.cfg.reveng.OverrideRepository 
    at org.jboss.tools.hibernate3_6.console.ConsoleExtension3_6$3.execute(ConsoleExtension3_6.java:249) 
    at org.hibernate.console.execution.DefaultExecutionContext.execute(DefaultExecutionContext.java:63) 
    at org.jboss.tools.hibernate3_6.HibernateExtension3_6.execute(HibernateExtension3_6.java:201) 
    at org.jboss.tools.hibernate3_6.console.ConsoleExtension3_6.buildConfiguration(ConsoleExtension3_6.java:239) 
    at org.jboss.tools.hibernate3_6.console.ConsoleExtension3_6.runExporters(ConsoleExtension3_6.java:169) 
    at org.jboss.tools.hibernate3_6.console.ConsoleExtension3_6.launchExporters(ConsoleExtension3_6.java:126) 
    at org.hibernate.eclipse.launch.CodeGenerationLaunchDelegate.launch(CodeGenerationLaunchDelegate.java:270) 
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:854) 
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:703) 
    at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:928) 
    at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1132) 
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 

我第一次嘗試使用代碼生成我有這樣的事情:

org.hibernate.console.HibernateConsoleRuntimeException: Received a NoClassDefFoundError, probably the console configuration classpath is incomplete or contains conflicting versions of the same class Received a NoClassDefFoundError, probably the console configuration classpath is incomplete or contains conflicting versions of the same class java.lang.NoClassDefFoundError: org/objectweb/asm/Type org/objectweb/asm/Type  
java.lang.NoClassDefFoundError: org/objectweb/asm/Type org/objectweb/asm/Type   
java.lang.ClassNotFoundException: org.objectweb.asm.Type  org.objectweb.asm.Type  

之後,我只得到[...]cfg.reveng.OverrideRepository error

回答

6

與NoClassDefFoundError的嚴重痛苦小時之後,我終於找到了解決辦法。主要重點:hibernate版本的庫應該與選定的Hibernate版本的控制檯配置(點3)相匹配。

檢查表:

  1. 確保你已經下載了最新版本的Hibernate插件(即適合你的Eclipse的版本)。爲了得到它去幫助 - > Eclipse Marketplace->輸入:hibernate(eclipse版本名稱,例如luna)。選擇最新的JBoss工具,並選擇Hibernate和JBoss Maven Hibernate配置器。

  2. http://hibernate.org/orm/downloads/下載最新的jar文件。將這些文件存儲在構建路徑中的文件夾中。

  3. 在創建Hibernate控制檯配置時,請確保從下拉列表中選擇最新的Hibernate Version。例如在我的情況下,因爲我有建立路徑中的Hibernate 4.x jar文件,選擇版本4.3。解決問題。

嘗試從控制檯配置的下拉列表中更改Hibernate版本。它可以解決這個問題。

+2

版本更改技巧解決了我的問題。我在Eclipse Mars + Hibernate Tools 5.0.1.Final-v20160331-1852-B88上。所以,我在啓動配置上使用了5.0版本。我獲得了MultiMap類的NoClassDefFound。將版本更改爲4.3解決了它。 –

-2

我在使用hibernate逆向工程時也遇到過這個問題,並且我遭受了近3天的困擾,但終於找到了解決方案。

  1. 爲了在休眠工作,逆向工程,你並不需要顯式地添加任何休眠相關的jar,因爲它使用Hibernate的工具插件走來,只有一點是你必須添加的jdbc罐子相應的數據庫。

  2. 創建您選擇在Eclipse的角度來看休眠選項項目之後,你會選擇File => New =>Hibernate Console Configuration

  3. 在這裏,你必須做的Hibernate控制檯配置中,你有「Hibernate的版本」確保什麼以往版本中,你已經在這裏選擇你必須在創建Hibernate配置文件這不過是的hibernate.cfg.xml,如果你會做同樣的,你不會得到這個錯誤選擇相同:

org.hibernate.console.HibernateConsoleRuntimeException: Received a NoClassDefFoundError, probably the console configuration classpath is incomplete or contains conflicting versions of the same class