1.
原文地址:http://heavengate.blog.163.com/blog/static/20238105320127291018026/
错误信息:
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解决。