本文共 1641 字,大约阅读时间需要 5 分钟。
1、报错信息:java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
大概看一下错误信息:BeanFactory没有实例化或者已经关闭,原因很简单:ApplicationContext ctx = new ClassPathXmlApplicationContext();Spring实例化
BeanFactory的时候是默认到classPath下面查找名为applicationContext.xml的文件。但是这正是这个错误的原因:ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");如果这样的话就不会出现这样的错误了。
2、java.lang.NoClassDefFoundError: javax/transaction/TransactionManager 3、org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/HibernateSessionFactory.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/cache/CacheProvider
原先:<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 改成:<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 问题解决,发现可以正常使用了
4、java.lang.NoClassDefFoundError: org/jboss/logging/BasicLogger 缺少一个jar包
jboss-logging.jar 5、java.lang.NoClassDefFoundError: javax/persistence/Entity java.lang.NoClassDefFoundError: javax/persistence/AttributeConverter 1) 在使用Hibernate3的时候,发现程序编译好了,在运行时总是抛出java.lang.NoClassDefFoundError: javax/persistence/EntityListeners异常,经查找是因为缺少ejb3-persistence.jar包。
只需要在类库中加入ejb3-persistence.jar,就不会出现这个异常了。
这里不理解的是Hibernate3, 为什么不把ejb3-persistence.jar直接放到自己需要的类库中,而非让用户自己找,去添加。
附件是ejb3-persistence.jar
如果需要完整的Hibernate3的相关jar包,请到 下载
2)Hibernate需要jpa支持,导入jpa的jar包(hibernate-jpa-2.0-api-1.0.1.Final.jar)即可。
转载地址:http://wsupi.baihongyu.com/