当前位置:首页 > 服务端 > 【原创】整合Spring4+Hibernate4+Struts2时NullPointerException问题解决

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

1、开场白

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

2、问题描述

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

【原创】整合Spring4+Hibernate4+Struts2时NullPointerException问题解决 _ JavaClub全栈架构师技术笔记

调试时进入了InvocationTargetException函数:

【原创】整合Spring4+Hibernate4+Struts2时NullPointerException问题解决 _ JavaClub全栈架构师技术笔记

3、解决方法

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

【原创】整合Spring4+Hibernate4+Struts2时NullPointerException问题解决 _ JavaClub全栈架构师技术笔记

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

【原创】整合Spring4+Hibernate4+Struts2时NullPointerException问题解决 _ JavaClub全栈架构师技术笔记

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

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

Method invoke()方法源代码:

【原创】整合Spring4+Hibernate4+Struts2时NullPointerException问题解决 _ JavaClub全栈架构师技术笔记

代码中看到当传进来的对象为空时,返回NullPointerException()错误。所以可以肯定的是传进来的dao对象是为空的。

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

【原创】整合Spring4+Hibernate4+Struts2时NullPointerException问题解决 _ JavaClub全栈架构师技术笔记

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

添加dao对象到Spring Ioc容器

【原创】整合Spring4+Hibernate4+Struts2时NullPointerException问题解决 _ JavaClub全栈架构师技术笔记

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

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

 

作者:码头小渔夫
来源链接:https://www.cnblogs.com/porotin/p/9025472.html

版权声明:
1、Java侠(https://www.javaxia.com)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaxia.com/server/125145.html

分享给朋友:

“【原创】整合Spring4+Hibernate4+Struts2时NullPointerException问题解决” 的相关文章