【原创】整合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问题解决的更多相关文章
- spring4+hibernate4+struts2项目整合的步骤及注意事项
首先,在整合框架之前,我们需要知道Spring框架在普通Java project和Web project中是略有不同的. 这个不同地方就在于创建IOC容器实例的方式不同,在普通java工程中,可以在m ...
- spring4+hibernate4+struts2环境搭建
tomact配置请查看下面的文章 javaEE_maven_struts2_tomcat_first http://www.cnblogs.com/luotuoke/p/4543686.html po ...
- Spring4 Hibernate4 Struts2在WebLogic 10.3.3上面部署
折腾了4天,终于可以部署了: 1,lib下面的包: antlr-2.7.7.jarasm-5.0.2.jarasm-commons-5.0.2.jarasm-tree-5.0.2.jarc3p0-0. ...
- Maven+struts2+spring4+hibernate4的环境搭建
搭建Maven+struts2+spring4+hibernate4其实并不难!但开始弄的时候还是费了我好大的力气,老是出现这样那样的错误!好了,废话不多说,开始搭建开发环境. 一.Myeclipse ...
- J2EE开发框架搭建(2) - springmvc4 + spring4 + hibernate4 整合
1. 打开hqhop-framework-parent项目下的pom.xml文件.加入springmvc4 , spring4 , hibernate4 ,以及数据源druid的依赖包,插件,依赖包版 ...
- SSH(Struts2+Spring4+Hibernate4)框架教程之配置篇
SSH(Struts2+Spring4+Hibernate4)框架教程之配置篇 - 若明天不见 - 博客频道 - CSDN.NEThttp://blog.csdn.net/why_still_conf ...
- JAVAEE——SSH三大框架整合(spring+struts2+hibernate)
一.整合原理 二.导包(41个) 1.hibernate (1)hibernate/lib/required (2)hibernate/lib/jpa | java persist api java的 ...
- Spring4+Hibernate4事务小记
学习Spring+Hibernate,非常强大的框架,为了追新,就直接从最高版本开始学习了,这要冒很大的风险,因为网上可查到的资料大多是针对旧版本的,比如Spring3,Hibernate3. 根据我 ...
- activemq5.11整合spring4.2.3
前言 这篇博客记录 activemq5.11整合spring4.2.3的过程,免得以后忘记了 1.工程结构 2.pom.xml <project xmlns="http://maven ...
随机推荐
- Linux 开发环境搭建
本文多参考自网上资料,在此多谢这些资料的作者的辛勤劳动! 另外,本文所用 Linux 版本为 CentOS 7.1. 终端配置 安装及配置 Zsh 在默认情况下,Linux 下的终端是 bash,但其 ...
- Mahout 系列之--canopy 算法
Canopy 算法,流程简单,容易实现,一下是算法 (1)设样本集合为S,确定两个阈值t1和t2,且t1>t2. (2)任取一个样本点p属于S,作为一个Canopy,记为C,从S中移除p. (3 ...
- shell的date命令:使用方法,以及小时、分钟的计算
shell命令格式严格,不像python那样命令行中可以添加空格.如等号两边无空格.有多余空格错误,日期date命令就是最明显的例子. 命令格式: date [-u] [-d datestr] [-s ...
- Linux C OSS音频编程
在linux下也可以写一个类似麦克风和喇叭这样的应用程序,只要打开/dev/dsp这个设备驱动,对该设备read读操作相当于录音,对这个设备write写操作相当于放音. 对于以下出现的一些参数我就不多 ...
- STL - vector容器
1Vector容器简介 vector是将元素置于一个动态数组中加以管理的容器. vector可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲). vector尾部添加 ...
- Unix/Linux中的grep命令(转)
本文转载自:如何使用Unix/Linux grep命令——磨刀不误砍柴工系列.该博文条理很清晰. grep简介 grep在一个或多个文件中查找与模式字符串(pattern)匹配的行,并将搜索的结果打印 ...
- 如何在Android上编写高效的Java代码
转自:http://www.ituring.com.cn/article/177180 作者/ Erik Hellman Factor10咨询公司资深移动开发顾问,曾任索尼公司Android团队首席架 ...
- Linux常用命令(第二版) --Shell应用技巧
Shell应用技巧 小技巧: 1.命令补全功能: <Tab>键 2.清屏: Ctrl+l 3.删除光标前所有内容: Ctrl+u 4.命令历史记录: history 这时: !histo ...
- Tomcat configuration DataSource
1. configuration MySql Connection DataSource 原理介绍 java 调用 Tomcat 中的 ConnectionPool 通过Context 中去查找 j ...
- PS 滤镜——Skewing
%%%% Skewing clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorith ...