原创整合Spring4+Hibernate4+Struts2时NullPointerException问题解决
Posted 码头小渔夫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原创整合Spring4+Hibernate4+Struts2时NullPointerException问题解决相关的知识,希望对你有一定的参考价值。
1、开场白
相信SSH初学者肯定遇到过这个问题,但是又是百思不得其解,明白了之后就恍然大悟。
2、问题描述
程序实现过程是UserAction中调用UserService,UserService的实现类中调用了DAO类。在程序运行过程中控制台出现NullPointerException的错误:
调试时进入了InvocationTargetException函数:
3、解决方法
Debug中发现UserService代码在调用Dao的时候出现了问题:
调试发现,传的参数都是正常的,但是就是在59行代码报错,而且不能直接进入baseDao的get方法。进入了下面的InvocationTargetException代码:
再往下调试,控制台输出java.lang.NullPointerException错误。
想到在执行baseDao对象的get方法时候会调用invoke()方法。
Method invoke()方法源代码:
代码中看到当传进来的对象为空时,返回NullPointerException()错误。所以可以肯定的是传进来的dao对象是为空的。
看一下Spring对各个对象的管理情况,检查代码发现了问题所在,dao没有注入。
知道了问题所在,解决办法:
添加dao对象到Spring Ioc容器
在16行加上@Resource(name = "baseDao")注解,告诉Spring,让Spring把创建好的baseDao对象注入给UserService。
这样Spring NullPointerException,InvocationTargetException的问题得以解决。
以上是关于原创整合Spring4+Hibernate4+Struts2时NullPointerException问题解决的主要内容,如果未能解决你的问题,请参考以下文章
[转]Struts2.3.16.1+Hibernate4.3.4+Spring4.0.2 框架整合
SpringMVC4+Spring4+Hibernate4框架整合
J2EE开发框架搭建 - springmvc4 + spring4 + hibernate4 整合