(1)java.lang.NoClassDefFoundError: org/hibernate/context/CurrentSessionContext
原因:出現這錯誤時,請更改hibernate的包,更新至最新或3.1以上
(2)java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
原因:缺少jta.jar 或者是找不到hbm.xml文件導致sessionfactory出錯,檢查hbm文件路徑是否正確,文件是否存在
(3) 錯誤:
Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
或者org.springframework.jdbc.BadSqlGrammarException: Hibernate operation: could not insert: [com.yourcompany.model.Login]; bad SQL grammar [insert into mysql__login (name, password) values (?, ?)]; nested exception is java.sql.SQLException: Table 'mysql.mysql__login' doesn't exist java.sql.SQLException: Table 'mysql.mysql__login' doesn't exist
原因與解決:因為Hibernate Tools(或者Eclipse本身的Database Explorer)生成*.hbn.xml工具中包含有catalog="***"(*表示數據庫名稱)這樣的屬性,將該屬性刪除就可以了
(4)org.springframework.orm.hibernate3.HibernateQueryException: undefined alias
原因:在spring配置文件中,可能妳設置了<prop key="hibernate.query.factory_class">
org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop>,指定了HQL的解釋器,請刪除或更改另壹個解釋器org.hibernate.hql.ast.ASTQueryTranslatorFactory, 如果沒有設置,請確認是否有寫錯了HQL語句,是否與POJO裏的屬性壹樣。註意區分大小寫。
(5)quartz報錯: Caused by: java.lang.NoSuchMethodError:
org.apache.commons.collections.SetUtils.orderedSet(Ljava/util/Set;)Ljava/util/Set;
原因是由於使用的commons-collections.jar版本太低導致的要使用3.*的才行,下載地址為:mons.apache.org/downloads/download_collections.cgi
選Binary下的zip下載,下載後將裏的的commons-collections-x.x.x.jar放置到妳的classpath裏即可。記得刪除舊的那個jar包
(6)org.springframework.beans.factory.CannotLoadBeanClassException:
Cannot find class [com.mchange.v2.c3p0.ComboPooledDataSource] for bean
這是因為妳的sping配置文件是使用c3p0作數據池,而妳的classpath裏沒有找到這個c3p0的jar包而導致的,下載壹個jar導入classpath即可。
地址為:mons/pool/impl/GenericObjectPool 的解決方法
java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool原因:
找不到 Caused by:
java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
就是Apache所提供的基本對象池。
解決:
到這裏mons.apache.org/downloads/download_pool.cgi下載包,然後,把裏面的commons-pool-x.jar復制到myEclipse的Referenced Libraries下.
(12)錯誤提示:java.lang.NoClassDefFoundError:
org/apache/commons/collections/LRUMap類沒找到,
或org/apache/commons/collections/SequenceHashMap類沒找到:
工程裏的commons-collections.jar包與其它包不匹配導致的,例如如果妳用
commons-beanutils-1.7.0.jar,commons-collections-3.2.jar時會出現妳的那種問題,如果是commons-beanutils-1.7.0.jar,commons-collections-3.1.jar就不會就這種問題了...祝妳好運啦
(13)Spring2.0與Hibernate3.0的錯誤解決
嚴重: action: null
org.springframework.beans.factory.BeanCreationException: Error creating bean with name
'sessionfactory' defined in ServletContext resource [/WEB-INF/beans-config.xml]: Initialization of bean failed; nested exception is java.lang.SecurityException:
class "org.apache.commons.collections.SequencedHashMap"'s signer information does not match signer information of other classes in the same package
java.lang.SecurityException: class "org.apache.commons.collections.SequencedHashMap"s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:775)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:487)
at java.lang.ClassLoader.defineClass(ClassLoader.java:614)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1817)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872).........
Spring2.0 AOP Liberaries裏的asm2.2.3.jar和Hiberate中的生成代理用的asm.jar沖突,後來把asm2.2.3.jar刪了才好使
或者
java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
這個錯誤是因為系統需要壹個叫“asm.jar”的包,而這個包在SpingAop包中和Hibernate包中都有,而且不象話的是這兩個包中的類org.objectweb.asm.ClassVisitor的方法visit方法簽名竟然不壹樣,所以解決方法很簡單,項目在加HIBERNATE3能力的時候不加庫,直接用Spring的AOP的庫就可以了。
在使用Spring的AOP編程時,會用到這幾個lib:
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
Hibernate使用如果lib:
asm.jar
asm-attrs.jar
其中asm-2.2.2.jar與asm.jar存在類上的沖突!
使用其中之壹或兩者都使用,可能會出現如下錯誤:
java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit。。。。。。
解決辦法是:
去掉類路徑上的關於Hibernate的3個lib
asm.jar
asm-attrs.jar
cglib-2.1.3.jar
保留Spring中的以下4個lib
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
cglib-nodep-2.1_3.jar
或去掉asm-commons-2.2.2.jar
asm-util-2.2.2.jar
cglib-nodep-2.1_3.jar
(14) 錯誤提示:net.sf.cglib.core.CodeGenerationException:
java.lang.reflect.InvocationTargetException-->null
Caused by: java.lang.reflect.InvocationTargetException
Caused by: java.lang.SecurityException:
class "com.wuwei.struts.bean.User
EnhancerByCGLIB
1016ffbf"'s signer information does not match signer information of other classes in the same package
在….hbm.xml文件中,將class標簽的lazy屬性改為false(默認為true)
<class name="com.wuwei.struts.bean.User" table="user" lazy="false">。如果有schema="dbo" catalog="test"配置信息,請將其刪除