【原创】整合Spring4+Hibernate4+Struts2时NullPointerException问题解决

一、开场白

相信SSH初学者确定遇到过这个问题,可是又是百思不得其解,明白了以后就恍然大悟。java

二、问题描述

程序实现过程是UserAction中调用UserService,UserService的实现类中调用了DAO类。在程序运行过程当中控制台出现NullPointerException的错误:函数

调试时进入了InvocationTargetException函数:spa

三、解决方法

Debug中发现UserService代码在调用Dao的时候出现了问题:调试

调试发现,传的参数都是正常的,可是就是在59行代码报错,并且不能直接进入baseDao的get方法。进入了下面的InvocationTargetException代码:对象

再往下调试,控制台输出java.lang.NullPointerException错误。blog

想到在执行baseDao对象的get方法时候会调用invoke()方法。get

Method invoke()方法源代码:io

代码中看到当传进来的对象为空时,返回NullPointerException()错误。因此能够确定的是传进来的dao对象是为空的。容器

看一下Spring对各个对象的管理状况,检查代码发现了问题所在,dao没有注入。bug

知道了问题所在,解决办法:

添加dao对象到Spring Ioc容器

16行加上@Resource(name = "baseDao")注解,告诉Spring,让Spring把建立好的baseDao对象注入给UserService。

这样Spring NullPointerException,InvocationTargetException的问题得以解决。

相关文章
相关标签/搜索