2014-10-03 67 views
1

这是我的第一个Hibernate的实践中,我得到了以下错误休眠:我怎样才能解决java.lang.IncompatibleClassChangeError:

java.lang.NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter 

我添加的jar文件到项目库,但错误依然存在。我正在使用Eclipse。

我该如何解决这个问题,这是否与我的代码有关?或关于Eclipse中的设置?

这是我的休眠例如

This is my hibernate example

hibernate configuration

错误

Caused by: java.lang.NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter 
at org.hibernate.bytecode.cglib.BytecodeProviderImpl.getProxyFactoryFactory(BytecodeProviderImpl.java:33) 
at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactoryInternal(PojoEntityTuplizer.java:182) 
at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:160) 
at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135) 
at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55) 
at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56) 
at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:269) 
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:425) 
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109) 
at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55) 
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226) 
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1218) 
at com.hib.anoop.ManageEmployee.main(ManageEmployee.java:20) 
Caused by: java.lang.ClassNotFoundException: net.sf.cglib.proxy.CallbackFilter 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
... 13 more 

我加入了正确的罐子,解决了这个问题,但新的问题发生如下

Caused by: java.lang.IncompatibleClassChangeError: class net.sf.cglib.core.DebuggingClassWriter has interface org.objectweb.asm.ClassVisitor as super class 

我该如何解决这个问题?

+0

该错误意味着它不能找到你的classpath的类。您可能已将其添加到项目中,但是您确定您的类路径在运行时已正确设置?你是在IDE还是打包的jar文件中运行? – 2014-10-03 05:43:57

+0

我使用Eclipse,并作为java应用程序运行,将jar文件添加到库中。 – Anptk 2014-10-03 05:57:16

回答

2

问题解决了,问题涉及到的版本jar文件cglibasm

现在,我与cglib 2.2.2asm 3.3.1

取代了罐子现在,不匹配解决,并得到输出。

0

问题将Maven的依赖后解决:

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-cglib-repack</artifactId> 
    <version>2.1_3</version> 
</dependency>