struts2.1.8+hibernate2.5.6+spring3.0常见异常原因和解决方案

经过暑期两个月对ssh2的学习和OA项目的实战训练,我对J2EE技术中著名的三大框架ssh2已渐渐有所理解和掌握。从搭建ssh2框架环境开始到写出第一个简单的ssh2登陆程序,到最后整个OA项目的实战, 期间遇到了重重困难和阻碍, 就连搭建环境就花了整整一天的功夫,而成功运行第一个ssh2程序更花了好几天,当然我相信这是大部分学习ssh2这门技术都会经历的过程,相信也是每个程序员学习任何一门新的技术都会走的路程。如今,项目已成功收尾,在这欣喜之余,我也愿意将我学习ssh2中遇到的一些常见异常问题总结如下,希望大家可以少走一些弯路,或者在遇到问题时可以及时解决。

PS:我的编程运行环境是MyEclipse8.6 + Tomcat6.1.3 + MySql

问题一:出现异常 java.lang.NoSuchMethodError: antlr.collections.AST.getLine()问题

原因:是JAR包的冲突,包 antlr2.7.2 与 antlr2.7.6 冲突(一个是tomcat下的包,一个是自己引入ssh2的包)

解决方案:删除包antlr2.7.2 即可,具体方法:

在MyEclipse下,windows-->preferences-->在文本框中搜索struts2-->选择antlr2.7.2-->remove

或者直接在tomcat该应用的目录WEB-INF\lib 删除 antlr2.7.2.jar

问题二:异常java.lang.NullPointerException

原因:空指针异常产生的主要原因如下:

(1) 当一个对象不存在时又调用其方法会产生异常

obj.method() // obj对象不存在

(2) 当访问或修改一个对象不存在的字段时会产生异常

obj.method()  // method方法不存在

解决方案:调试,找出异常产生的具体原因,再根据具体原因具体解决

问题三:异常The Struts dispatcher cannot be found.  This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag. - [unknown location]

原因:struts2的过滤器映射路径写错

解决方案:在web.xml中配置struts2的过滤器如下:

<filter-mapping>

   <filter-name>struts2</filter-name>

   <url-pattern>/*</url-pattern>

</filter-mapping>

注意:<url-pattern>这里一定要是 /*

问题四:org.hibernate.util.JDBCExceptionReporterorg.hibernate.util.JDBCExceptionReporter.logExceptions

(JDBCExceptionReporter.java:101) - Unknown type '246 in column 2 of 6 in binary-encoded result set.

原因:用mysql数据库时,某些字段值使用类型decimal、bigint等

解决方案:用mysql数据库时,避免字段值用decimal、bigint等,否则用hibernate执行hql语句时就会出现上面的异常

问题五:经过action跳转后得到的页面中css和js的样式引入不能应用

原因:经过action跳转后页面的路径改变了,不是你页面存放路径

解决方案:最好用绝对路径来引入css和js,如引入css可用

<link href="${pageContext.request.contextPath}/css/css.css" rel="stylesheet" type="text/css" />

PS:也可使用项目名称来作为绝对路径,如项目名称为OA,则上面引入也可如下:

<link href="/OA/css/css.css" rel="stylesheet" type="text/css" />

似乎更简介,但个人不推荐使用,因为一旦你的项目名更换后,所有页面中的OA都要跟着替换,十分繁琐。

问题六:使用struts2的标签<s:textfield />时,不能在一行显示多个文本框(一个textfield占一行)

原因:初学struts2,在头脑中一直在想一个问题,就是对于struts2 ,当应用其自身的标签时,例如:

<s:form>

<s:textfield name="a"></s:textfield>

</s:form>

当查看源代码时为:

<form>

<table>

 <tr><td><input type="text" name=a /></td></tr>

</table>

</form>

自动添加了table tr td 标签,所有不能一行显示多个文本框。

解决方案:在struts2中加入了theme(主题)的概念,通过设置不同的主题,可以让struts的代码输出不同的html代码,你也就相应得到不同的布局效果。

时间: 2024-10-11 14:20:02

struts2.1.8+hibernate2.5.6+spring3.0常见异常原因和解决方案的相关文章

MyEclipse搭建SSH框架 Struts2.1+Spring3.0+hibernate3.3

原文http://www.cnblogs.com/AXDY-QIN/archive/2013/01/21/SSH.html 用MyEclipse搭建SSH框架 Struts2.1+Spring3.0+hibernate3.3 1.         配置Tomcat 配置Tomcat所在路径 配置Tomcat使用JDK版本 如果Tomcat为7.0则添加Tomcat-juli.jar包 2.         new一个web project. 2.右键项目,为项目添加Struts支持.   点击F

Struts2.1+Hibernate3.3+Spring3.0请高手帮帮忙

问题描述 我是个Java初学者,现在用Struts2.1+Hibernate3.3+Spring3.0出现如图所示的问题sessionFactory的配置如图:listener的配置如图:请高手们帮帮忙啊 解决方案 解决方案二:检查一下驱动jar,还有listeners在这里配置吗?解决方案三:有没少jar包?web.xml有没配下面的:<!--向监听器类中传递初始化参数,以获取BeanFactory对象(告诉spring到哪里去加载配置文件)--><context-param>&

关于以Spring3.0 MVC进行项目开发的疑问

问题描述 该项目是一个行业门户,使用Java技术开发.该项目从整体角度考虑,主要有两个关注点,一个是MVC,另一个是数据持久化.原计划是使用Struts1 + Spring3 + Hibernate3来设计,但Struts1太过古老,已经N久不更新了,Spring3也几乎放弃了对Struts1的支持,org.springframework.web.struts-3.0.5.RELEASE.jar里所有的类都被@Deprecated了.因此考虑Struts2,但是Struts2问题多多,从性能角度

编码-spring3.0中出现no viable alternative at input &amp;amp;#39;^&amp;amp;#39; 异常

问题描述 spring3.0中出现no viable alternative at input '^' 异常 <?xml version="1.0" encoding="UTF-8"?> xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util=

Spring3.0+Hibernate3.3 数据库访问出错。

问题描述 我使用Spring3.0+Hibernate3.3作为后台DAO访问数据库,其中我的dao都继承HibernateDaoSupport来的.然后我在jsp中调用publicvoidsave(ModuleDatiQuestiontransientInstance){log.debug("savingModuleDatiQuestioninstance");try{getHibernateTemplate().save(transientInstance);log.debug(&

请大神些给我发个spring3.0的所有jar包

问题描述 请大神些给我发个spring3.0的所有jar包,邮箱:1610243630@qq.com 解决方案 解决方案二:伸手党已经到了这种境界了................开源自己下去解决方案三:天,哥你是个程序员啊,http://blog.csdn.net/zhujianpengzha/article/details/9121923解决方案四:直接去spring官网下一个压缩包,解压出来都有spring的各种包啊解决方案五:花半天的时间学会用Maven,几行配置就可以把Spring的所

各位大大,谁能帮我看下我这个spring3.0 和 mybatis整合出了什么问题呀,mybatis总是行不成功,完整项目我已经放在附件中了

问题描述 附件是我的项目,可以直接在eclipse中部署运行,用的mysql数据库,只需建一个test数据库就可以,建表语句在test.rar附件中,执行的service url是:http://localhost:8080/springTest/lyang/getAll.do每次一执行就报:java.lang.NullPointerExceptionat com.lyang.springTest.daoImpl.IPeopleDao.getAllPeople(IPeopleDao.java:1

server-新手求助:为啥会出现tomcat8.0运行异常

问题描述 新手求助:为啥会出现tomcat8.0运行异常 大家帮忙来看看,真的很蛋疼 解决方案 查看一下具体信息,估计是你配置,程序有问题. 解决方案二: 好歹你点开details看看 解决方案三: 删了重建.............. 解决方案四: 是不是tomcat环境变量配置的问题? 一.安装JDK和Tomcat 1,安装JDK:直接运行jdk-7-windows-i586.exe(相应版本的jdk,这里以jdk-7-windows-i586.exe为例)可执行程序,默认安装即可. 备注:

版本-安卓功能5.1下正常 4.0下异常

问题描述 安卓功能5.1下正常 4.0下异常 应用所有对php服务器的http请求,在5.1下正常,在4.4.4.0下不正常. 测试过3台手机和模拟器确认是系统版本问题,与机型无关. 比如在服务器返回福建省份的成绩名单时,5.1机型接收到的内容是:(PC上返回的也是这个结果) {"num":"9","city":{"1":"厦门","2":"泉州","3&q