使用SSH过程中遇到的几个问题及解决方案
一、HTTP Status 500 - org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; nested exception is org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
解决办法:
主键提前删除了,放到语句后面就没事了
参考:
http://blog.csdn.net/ssyan/article/details/7471343
二、java.lang.OutOfMemoryError: Java heap space解决方法
解决方法:
引起java.lang.OutOfMemoryError: Java heap space异常,可能是由JAVA的堆栈设置太小的原因
根据网上的答案大致有以下两种解决方法:
1、在D:/apache-tomcat-6.0.18/bin/catalina.bat最前面加入:set JAVA_OPTS=-Xms384m -Xmx384m
注意:只有startup.bat启动tomcat,设置才能生效,如果利用windows的系统服务启动tomcat服务,上面的设置就不生效了,
就是说set JAVA_OPTS=-Xms384m -Xmx384m没起作用
2、在Eclilpse中修改启动参数,在VM arguments 加入了-Xms384m -Xmx384m,设置如下图所示
问题解决。
不过发现最后还是会出现内存不足的情况,只能每次运行都重启tomcat.问题解决,就是有点耗时。
参考:
http://www.cnblogs.com/linjiqin/archive/2011/04/27/2030115.html
三、 java.lang.NullPointerException
解决方法:
NullPointerException异常的原因?? 所谓空指针异常,是因为用空(null)去调用属性或方法。 null表示没有这个对象,既然没有这个对象,那么去调用他的属性和方法,就会报异常。 <--主要有以下几种原因: 1、使用了未初始化的变量(虽然已经声明) 2、使用了未初始化的对象(虽然已经声明) 3、使用了关键字或已存在的类名作变量对象方法或类名。 当应用程序试图在需要对象的地方使用 null 时,抛出该异常。 <--这种情况包括: 调用 null对象的实例方法。 访问或修改null对象的字段。 将null作为一个数组,获得其长度。 将null作为一个数组,访问或修改其时间片。 将null作为Throwable值抛出。
四、网页报错:HTTP Status 500 - org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access; nested exception is org.hibernate.exception.GenericJDBCException: could not insert: [com.zrdm.domain.Votecontext]
服务器报错:Servlet.service() for servlet [default] in context with path [/votesystem] threw exception [org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access; nested exception is org.hibernate.exception.GenericJDBCException: could not execute query] with root cause java.sql.SQLException: Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'
解决办法:
编码问题不统一造成的。本项目采用的是UTF-8编码,但是里面混杂了GBK编码。所以造成这个问题。查找项目中所有gbk关键字,然后改为UTF-8,解决问题。
五、Referenced file contains errors (http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd)
解决办法:
以后struts2的校验器的规范要改成:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
参考:http://blog.csdn.net/happyjiahan/article/details/6535793
六、action重复调用
问题:使用<s:action>标签,jsp加载时自动执行action,发生数据不断循环重复
原因:为定义了两个相同方法但不同名的action。
解决办法:更换思路http://www.cnblogs.com/HeroZearin/articles/2729987.html
参考:http://blog.sina.com.cn/s/blog_451f5962010150um.html