今天闲的蛋疼。。。
很久都有一个想法,想测试哈Hibernate4+最少必须的架包是那些?
于是开始瞎折腾一番。。。。。。
1、错误信息:java.lang.noclassdeffounderror:org.hibernate.annotations.common.reflection.MetadataProvider
解决办法:加入hibernate-commons-annotations.jar
2、错误信息:java.lang.ClassNotFoundException: org.jboss.logging.BasicLogger
解决办法:加入jboss-logging-3.1.0.GA.jar就好了。hibernate4日志机制改了
3、错误信息:Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/EntityListeners
解决办法:加入hibernate-jpa-2.1-api-1.0.0.Final.jar
4、错误信息: java.lang.NoClassDefFoundError: javassist/util/proxy/MethodFilter
解决办法:加入javassist-3.18.1-GA.jar
5、错误信息:No CurrentSessionContext configured
解决办法:
因为在hibernate.cfg.xml文件中忘记进行了如下设置:hibernate.current_session_context_class
如果是在web容器中运行hibernate,则在hibernate.cfg.xml中加入这句话:
<property name="hibernate.current_session_context_class">jta</property>
如果是在一个单独的需要进行JDBC连接的java application中运行hibernate,则这样设置:
<property name="hibernate.current_session_context_class">thread</property>
6、错误信息:java.lang.ClassNotFoundException: javax.transaction.SystemException
解决办法:加入:jboss-transaction-api_1.2_spec-1.0.0.Final.jar
最后总结:Hibernate4.3.4Final版本最少需要的架包(8个)是
antlr-2.7.7.jar
dom4j-1.6.1.jar //xml文件解析
hibernate-commons-annotations-4.0.4.Final.jar
hibernate-core-4.3.4.Final.jar
hibernate-jpa-2.1-api-1.0.0.Final.jar
javassist-3.18.1-GA.jar
jboss-logging-3.1.3.GA.jar//用于日志。。。但我建议用slf+log4j
jboss-transaction-api_1.2_spec-1.0.0.Final.jar
附图一张: