终于实现了WebWork+Spring+Hibernate的注册功能,在队长的谆谆教导下,解决了一些小白的错误。现将所犯的典型错误做个总结,方便菜鸟们学习~~ ^_^高手就莫看了哈~~
Error
启动Tomcat时,在控制台输出:严重: Error listenerStart
2008-1-3 17:22:25 org.apache.catalina.core.StandardContext start
严重: Context [/newsJ] startup failed due to previous error
这是Spring的applicationContext.xml路径问题。eclipse自动创建在src文件夹下;而该文件的默认目录是
与web.xml在同一目录下(/WEB-INF/)。
解决方案:
在web.xml中加入:<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext*.xml</param-value>
</context-param>
Error
提交后,控制台异常:Error creating bean with name 'sessionFactory' ***[ ]
后面的一些信息不记得了,是一个类文件的名字。此错是版本问题。Hibernate2与Hibernate3,Hibernate3与Hibernate3.1的文件命名还是有很大的不一样的。
解决方案:换成Hibernate相应版本
Error
转向Jsp页面时,输出:org.hibernate.exception.SQLGrammarException: could not insert: [news.wzt.vo.User]
这是User.java文件的错误。分析user表的主键userid。在数据库中,我的user表并没有设置为自动增长autoincrement,而且类型为String;然而,User.hbm.xml文件定义的userid却有<generator class="native">,二者矛盾。
参考:http://hi.baidu.com/gameatp/blog/item/c2dbe1187ebdf4b74bedbce9.html
http://hi.baidu.com/fyears/blog/item/d90f1ec7cde153ded00060fb.html
解决方案:删除generator属性
个人总结:
本人不才,以上的错误都是队长手把手地调教解决的。事实上,我之前的推断与队长的分析大相径庭,苦苦琢磨了几天也是不得要领。就象第2个Error,报错信息是无法创建sessionFactory这个Bean。由于Hibernate的sessionFactory的交由Spring托管的,我就想,会不会是这个bean的语法格式有问题?要不,就是Spring与Hibernate整合的问题?然后,就在google中大搜特搜,未果;又开始分析所有的文件……自己把自己弄得晕头转向``
查错,其实也就是排错。把可能的错误一个个地排除,出错的范围一点点缩小,对关键部分做具体分析,才能尽快地找到出错的根源。报错信息只是表象,特别是整合了WebWork,Spring,Hibernate之后,传参,与数据库交互,都是由它们来完成,作为初学者的我,就很难看清楚这些Error背后的东西。现在写出来,觉得这些错误并没有想象中复杂,困难也并没有想象中难以克服。
悟出的两句话,与各位共勉:
编程不仅是要技术上的提升,还要思想上的升华。
一个好的开发人员,不仅是理想主义者,还要是行为主义者。