【原創】整合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的問題得以解決。

相關文章
相關標籤/搜索