使用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

 

 



原文地址:https://www.cnblogs.com/zrdm/p/5536029.html