SSH整合常见错误.doc_第1页
SSH整合常见错误.doc_第2页
SSH整合常见错误.doc_第3页
SSH整合常见错误.doc_第4页
SSH整合常见错误.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

spring+hibernate出错小结: (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 doesnt exist java.sql.SQLException: Table mysql.mysql_login doesnt exist 原因与解决:因为Hibernate Tools(或者Eclipse本身的Database Explorer)生成*.hbn.xml工具中包含有catalog=*(*表示数据库名称)这样的属性,将该属性删除就可以了(4)org.springframework.orm.hibernate3.HibernateQueryException: undefined alias 原因:在spring配置文件中,可能你设置了org.hibernate.hql.classic.ClassicQueryTranslatorFactory,指定了HQL的解释器,请删除或更改另一个解释器org.hibernate.hql.ast.ASTQueryTranslatorFactory, 如果没有设置,请确认是否有写错了HQL语句,是否与POJO里的属性一样。注意区分大小写。 (5)quartz报错: Caused by: java.lang.NoSuchMethodError: mons.collections.SetUtils.orderedSet(Ljava/util/Set;)Ljava/util/Set; 原因是由于使用的commons-collections.jar版本太低导致的要使用3.*的才行,下载地址为:/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即可。地址为:/project/showfiles.php?group_id=25357&package_id=88527,如果是windows的就选择zip的下载。 (7)The Network Adapter could not establish the connection 请检查你的url,user,pwd,dialect等等是否正确(8)java.lang.NoClassDefFoundError: org/hibernate/cfg/HbmBinder$SecondPass 原因:你更新了hibernate3.2的包,但你的classpath里可能存在hibernate-annotations.jar的包,删除之或更新至最新版本的包即可。 (9)java.lang.IllegalAccessError: tried to access method net.sf.ehcache.CacheManager.()V from class org.hibernate.cache.EhCacheProvider 原因:可能你更新了hiberante的包,导致原来的原来ehcache不行了,原来使用的是1.1的版本,换成1.5以上的正常,另还需要一个javassist.jar包 (10)Connections could not be acquired from the underlying database 大概的意思是说:不能连接当前所配置的数据库,检查你的URL链接字符串是否正确。 (11) org/apache/commons/pool/impl/GenericObjectPool 的解决方法java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool原因: 找不到 Caused by: java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool 就是Apache所提供的基本对象池。 解决: 到这里/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 mons.collections.SequencedHashMaps signer information does not match signer information of other classes in the same package java.lang.SecurityException: class mons.collections.SequencedHashMaps 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/CodeVisitorjava.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitorjava.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visitjava.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-nullCaused by: java.lang.reflect.InvocationTargetExceptionCaused by: java.lang.SecurityException: class com.wuwei.struts.bean.User$EnhancerByCGLIB$1016ffbfs signer information does not match signer information of other classes in the same package在.hbm.xml文件中,将class标签的lazy属性改为false(默认为true)。如果有schema=dbo catalog=test配置信息,请将其删除(15) 错误提示:java.lang.OutOfMemoryError:Java heap space的解决方法1、设置环境变量set JAVA_OPTS= -Xms32m -Xmx512m可以根据自己机器的内存进行更改,但本人测试这种方法并没有解决问题。可能是还有哪里需要设置。2、java -Xms32m -Xmx800m className就是在执行JAVA类文件时加上这个参数,其中className是需要执行的确类名。(包括包名)这个解决问题了。而且执行的速度比没有设置的时候快很多。如果在测试的时候可能会用Eclispe 这时候就需要在Eclipse -run -arguments 中的VM arguments(16) tomcat5的common/lib目录下jar包和WEB/lib下jar包冲突问题启动tomcat5,基本正常,打开普通的JSP也正常,但打开与struts相关的jsp报错如下:Javax.Servlet.ServletException: javax.servlet.jsp.PageContext.handlePageException(Ljava/lang/Throwable;)Vorg.apache.jASPer.servlet.JspServlet.service(JspServlet.java:256)javax.servlet.http.HttpServlet.service(HttpServlet.java:868)在tomcat/common/lib/中也放入了J2EE.jar等包,去common/lib中处不必要的包后,保证tomcat/common/lib/和WEB-INF/lib这两个目录下的jar没有重复的,问题解决。原来,tomcat 启动后先将tomcat/common/lib目录下的jar包全部读入内存,如果webapps目录里的应用程序中WEB-INF/lib目录下有相同的包,将无法加载,估计不同版本的包之间也会造成类似问题。因此建议尽量不要把jar包放入tomcat/common/lib目录下,应该放入WEB-INF/lib目录下。(17) java.lang.NoClassDefFoundError: net/sf/hibernate/Session后来发现,原来是HibernateDaoSupport类import引用的版本问题,应该与系统中使用的Hibernate框架的版本对应。在此就是org.springframework.orm.hibernate3.support.HibernateDaoSupport 而不是org.springframework(18)错误: java.lang.NullPointerException StandardWrapperValveaction: Servlet.service() for servlet action threw exceptionjavax.servlet.jsp.JspException: Cannot retrieve mapping for action /settlementTypeManage 或者: type Status report message Servlet action is not available description The requested resource (Servlet action is not available) is not available. 原因: 发现 dao 实例、 manage 实例等需要注入的东西没有被注入 解决:这个时候,你应该查看日志文件;默认是应用服务器的 log 文件,比如 Tomcat 就是 Tomcat 安装目录 /logs ;你会发现提示你: 可能是: org.springframework.beans.factory.BeanCreationException: Error creating bean with name sf defined in ServletContext resource /WEB-INF/applicationContext.xml: Initialization of bean failed; nested exception is org.hibernate.HibernateException: could not configure from URL: file:src/hibernate.cfg.xml org.hibernate.HibernateException: could not configure from URL: file:src/hibernate.cfg.xml . Caused by: java.io.FileNotFoundException: srchibernate.cfg.xml 可能是: org.springframework.beans.factory.BeanCreationException: Error creating bean with name sessionFactory defined in ServletContext resource /WEB-INF/applicationContext.xml: Initialization of bean failed; nested exception is org.hibernate.MappingException: Resource: com/mcc/coupon/model/UserRole.hbm.xml not found org.hibernate.MappingException: Resource: com/mcc/coupon/model/UserRole.hbm.xml not found 然后你就知道原因是因为配置文件的解析出了错误,这个通过 Web 页面是看不出来的。 更多的是持久化映射文件出的错误;导致了没有被解析;当然你需要的功能就无法使用了。 (19)错误:StandardWrapperValvejsp: Servlet.service() for servlet jsp threw exception java.lang.ClassNotFoundException: org.apache.struts.taglib.bean.CookieTei 界面错误具体描述:org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: org.apache.struts.taglib.bean.CookieTei 原因与解决: 你的”tml:”开头的标签没有放在一个中重新启动你的应用服务器,自动就没有这个问题了(20) 错误:java.sql.SQLException: Field userId doesnt have a default value原因:把配置文件的主键改为 可以进行自定义主键值,因为我在设主键时没有设成自动增长的,要求填默认值是受了配置文件里的影响了。(21)错误:org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations)原因与解决:方法1 删除Set方的cascade方法2 解决关联关系后,再删除方法3 在many-to-one方增加cascade 但值不能是none最后一招:检查一下hashCode equals是否使用了id作为唯一标示的选项了;我用uuid.hex时是没有问题的;但是用了native,就不行了,怎么办?删除啊!这个错误可以参见我的blog文章:/crazycy/archive/2006/06/24/54939.html(22)错误:exception javax.servlet.ServletException: BeanUtils.populat root causejava.lang.IllegalArgumentException:Cannot invoke *Form.set* - argument type mismatch原因:这个问题很奇怪的说,为什么说奇怪呢?主要针对Form是日期型的来说的;因为我做过N多系统Form中都是用java.util.Date,都是没有问题的。解决:第一:你把Date换成String;在Action中进行转换;当然转换要借助于SimpleDateFormate方法喽第二:记得在form中增加enctype=multipart/form-data (23)问题:用Tomcat5.5.12,发现原来很好用的系统不能用了,反复测试发现页面中不能包含 taglib,否则会出现以下提示:HTTP Status 500 -type Exception reportMessage description The server encountered an internal error () that prevented it from fulfilling this request.exceptionorg.apache.jasper.JasperException: /index.jsp(1,1) Unable to read TLD META-INF/tlds/struts-bean.tld from JAR file file:*/WEB-INF/lib/struts.jar:原因:更新了工程用的lib文件夹下的jar,发布时也发布了servlet.jar和jsp-api.jar。解决:把jsp-api.jar删除就解决这个问题了。(24)问题:Tomcat5.0.20中差错可以通过Tomcat安装目录/logs下的localhost_log.2006-07-14.txt类似的文件看具体的错误日志,但是在5.5中就找不到了原因与解决:我把Tomcat安装目录/bin下的tomcat5w.exe的logging标签捣鼓了一会,然后重起就有了。原因具体说不准,用非安装版也有这个问题。(25) HTTP Status 404 - Servlet action is not availabletype Status reportmessage Servlet action is not availabledescription The requested resource (Servlet action is not available) is not available.这个是因为在struts-config中,action执行交给了spring, 这需要org.springframework.web这个包,我没有导入,action跳转自然出错。解决方法就是导入spring-web.jar这个包。(26): javax.servlet.ServletException: Error creating bean with name /login defined in ServletContext resource /WEB-INF/applicationContext.xml: Cannot resolve reference to bean UserDAO while setting bean property userDAO; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named UserDAO is defined org.apache.struts.action.RequestPcessException(RequestProcessor.java:523) org.apache.struts.action.RequestPcessActionPerform(RequestProcessor.java:421) org.apache.struts.action.RequestPcess(RequestProcessor.java:224) org.apache.struts.action.ActionScess(ActionServlet.java:1194) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) javax.servlet.http.HttpServlet.service(HttpServlet.java:763) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) com.siyue.struts.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:167)这主要是applicationContext.xml文件中没有声明UserDao这个Bean,加入以下就可以解决。 但是,这就出现了下面的问题:javax.servlet.ServletException: Error creating bean with name /login defined in ServletContext resource /WEB-INF/applicationContext.xml: Cannot resolve reference to bean UserDAO while setting bean property userDAO; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name UserDAO defined in ServletContext resource /WEB-INF/applicationContext.xml: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: sessionFactory or hibernateTemplate is required org.apache.struts.action.RequestPcessException(RequestProcessor.java:523) org.apache.struts.action.RequestPcessActionPerform(RequestProcessor.java:421) org.apache.struts.action.RequestPcess(RequestProcessor.java:224) org.apache.struts.action.ActionScess(ActionServlet.java:1194) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) javax.servlet.http.HttpServlet.service(HttpServlet.java:763) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) com.siyue.struts.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:167)这是因为声明中没有注入SessionFactory所致,将上面声明的UserDao改成这样就解决了: (27)org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save():原因是ID在数据库中应该是自增长列,而在User.hbm.xml中却没有定义成自增长列,在插入数据库时,也就是Save()方法时,出现错误。这样改: (28) java.lang.ClassNotFoundException: mons.dbcp.BasicDataSource的解决方法只要把commons-pool.jar、commons-dbcp-1.2.2.jar和commons-collections-3.2.jar三个jar包加入classpath中就没问题拉!(29) 出现错误:Caused by: mons.dbcp.SQLNestedException: Cannot create JDBC driver of class com.microsoft.sqlserver.jdbc.SQLServerDriver for connect URL jdbc:sqlserver:/localhost;DatabaseName=exam.Caused by: java.sql.SQLException: No suitable driverat java.sql.DriverManager.getDriver(DriverManager.java:264)at mons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:773). 38 more首先要保证项目中导入了sqljdbc.jar,再有就是注意配置文件导入的类(30)identifier of an instance of my.MyObject altered from N to N这个异常的产生主要是VO中的类中的属性的类型和你影射文件中属性的类型不能一一对应。比如:ID的属性在类中使用的LONG,但是在配置文件描述却是Integer.结果就是上面的异常了!(31) org.springframework.beans.factory.BeanCreationException: Error creating bean with name useraction defined in ServletContext resource /WEB-INF/applicationContext.xml: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property user_server of bean class com.bids.action.UserAction: Bean property user_server is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property user_server of bean class com.bids.action.UserAction: Bean property user_server is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:793) at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:645).2009-1-21 12:09:18 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.servi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论