1.
原文地址:
错误信息:
hibernate:javax/persistence/EntityListeners Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/EntityListeners at org.hibernate.cfg.annotations.reflection.JPAMetadataProvider.getDefaults(JPAMetadataProvider.java:96) at org.hibernate.annotations.common.reflection.java.JavaReflectionManager.getDefaults(JavaReflectionManager.java:226) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1355) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1826) at StufentTest.main(StufentTest.java:18)
今天下午运行一个简单的hibernate出现的错误,用的是hibernate-distribution-3.6.0.Final,找不出错误在什么地方,网上有三种说法:
(1)在使用Hibernate3的时候,发现程序编译好了,在运行时总是抛出java.lang.NoClassDefFoundError:javax/persistence/EntityListeners异常,经查找是因为缺少ejb3-persistence.jar包。 只需要在类库中加入ejb3-persistence.jar,就不会出现这个异常了。
(2)版本冲突,解决方法是把包一个个导入。
(3)Hibernate 3.6是需要依靠JPA。所以只要把JPA的包导入就可以了,hibernate-distribution-3.6.0.Final/lib/jpa/hibernate-jpa-2.0-api-1.0.0.Final.jar。
我只用了简单的第三种方法j解决。