ssh整合常见的错误

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
 
导入一个jta.jar
 
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包,请到http://javapub.iteye.com/blog/867943下载 

 
2)Hibernate需要jpa支持,导入jpa的jar包(hibernate-jpa-2.0-api-1.0.1.Final.jar)即可。
上一篇:被sleep开了个小玩笑


下一篇:多线程中lock用法的经典实例