使用SSH框架遇到的错误总结

1、org.hibernate.exception.ConstraintViolationException: could not insert:

如果是主键是自增序列,映射文件 指定主键生成器<generator class="native" />

如果是自定义主键 <generator class="assigned" />

解决:http://blog.csdn.net/zml_2015/article/details/50282013

 

2、No Hibernate Session bound to thread

解决办法是通过注解给service加上事务即可:@Transactional

解决:http://www.myexception.cn/software-architecture-design/904025.html

 

3、struts配置 result跳出iframe 进入父页面

设置一个中间页面 跳进父页面

解决:http://blog.sina.com.cn/s/blog_a72f208a01014gha.html

 

4、错误 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [config/bean-base.xml]: Invocation of init method failed; nested exception is org.hibernate.InvalidMappingException: Unable to read XML

 

解决:将<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd ">的dtd后面的空格去掉

 

5、报错:java.lang.NoSuchMethodException: UserAction.delete()

明明action中有方法,却报错没有这个方法。发现方法名有警告,黄色波浪线标记,所以重新写了一个新方法(没有黄色线),把原方法处理内容放在新写的方法中,删除原方法,并将新方法名改为原方法,发现还是没有黄色线,再次运行,成功。

 

6、错误:java.lang.NoSuchMethodError: antlr.collections.AST

.getLine()I

解决:主要是Struts2 JAR包里antlr(某个版本) 与 Hibernate中的antlr(某个版本)冲突,只要删除Struts 2中的低版本的antlr(某个版本)就可以了,如果删除之后还是不行,确认Tomcat下面的项目下的lib文件夹里也没有antlr2.7.2.jar,如下图第二张所示,应把里面的antlr2.7.2.jar也删除。

 

7、错误; ognl.OgnlException: target is null for setProperty(null, "crcredit", [Ljava.lang.String;@3279afef)

解决:检查实体类中所有set、get方法都正确,并且在action类中,get、set方法后面要大写,比如变量为cs,se方法为setCs(),get方法为getCs()

posted @ 2017-06-06 17:03  京魂  阅读(761)  评论(0编辑  收藏  举报