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