Spring整合Hibernate,出现空指针异常!!!

beboyous 2013-03-06 10:10:38
实体类Project.java


对象关系映射文件Project.hbm.xml


spring schema文件applicationContext.xml
实现dataSource和sessionFactory的注入。



DAO类ProjectDaoImpl.java
起先我先使用BasicDaoImpl.java,让它继承HibernateDaoSupport类,
在applicationContext.jav当中实现dataSource和sessionFactory的注入。
再让ProjectDaoImpl.java继承DAO类ProjectDaoImpl.java,但是程序总是抛出空指针异常
我现在就干脆让ProjectDaoImpl.java直接继承HibernateDaoSupport类,
在applicationContext.jav当中实现dataSource和sessionFactory的注入。



DAO类的Junit的测试类ProjectDaoImplTest.java


Junit的测试类ProjectDaoImplTest.java的断电测试过程
进行断电测试

进入ipd.saveProject(project);方法

在ProjectDaoImpl.java当中做断电测试,测试出现空指针


断电测试结果表明,继承HibernateDaoSupport这个类所得到的getSessionFactory()为空,‘
所得到了getHibernateTemplate()也为空!
由此可知,我在applicationContext.xml当中配置的的dataSource和sessionFactory有问题!

但是applicationContext.xml这个文件,我检查了好长时间,都没有发现什么问题。

请高手帮我看看,我配置的文件,还有这些方法都有什么问题呢???


...全文
329 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
beboyous 2013-03-07
  • 打赏
  • 举报
回复
引用 8 楼 Davidtsang 的回复:
为什么连接密码那里是空的?


因为我的MySQL数据库安装的时候本身就没有设密码的!!!

再给你们看看我的JAR包吧,你们帮我看看JAR包缺不缺???

Davidtsang 2013-03-07
  • 打赏
  • 举报
回复
为什么连接密码那里是空的?
暂无 2013-03-07
  • 打赏
  • 举报
回复
试着把数据源配置修改下看行不:org.springframework.jdbc.datasource.DriverManagerDataSource用你自己本地的包里的数据源
beboyous 2013-03-07
  • 打赏
  • 举报
回复
引用 4 楼 zjyongning 的回复:
Java code?1234567@Before public void setUp() { String[] configLocations = new String[] {"classpath:applicationContext.xml","classpath:applicationContext-bigger.xml"}; ctx = new ……


你们看不懂我的测试程序吗,你们也不看看我的测试程序用了Spring框架了吗,我的
private IProjectDao ipd;
@Before
public void setUp() throws Exception {
ipd = new ProjectDaoImpl();
}
ipd不是都在测试类里面new好了吗,我又没有在applicationContext.xml里面注入进去,
我为什么还学要通过ClassPathApplicationContext()读取呢????
李荣强 2013-03-06
  • 打赏
  • 举报
回复
这什么东东啊?你的Spring容器的初始化过程呢?。。。按四楼说的来。。。
小区保安 2013-03-06
  • 打赏
  • 举报
回复

@Before  
    public void setUp() {  
    	String[] configLocations = new String[] {"classpath:applicationContext.xml","classpath:applicationContext-bigger.xml"};  
        ctx = new ClassPathXmlApplicationContext(configLocations); 
        entityManagerFactory = ctx.getBean("projectDao", ProjectDao.class);
        
    }
feng00~ 2013-03-06
  • 打赏
  • 举报
回复
楼上正解。。。
小区保安 2013-03-06
  • 打赏
  • 举报
回复
........看到你的测试 吐血了,,,,
小区保安 2013-03-06
  • 打赏
  • 举报
回复
你好,文件过多, 看的我眼睛花了, 你的

 //你的单元测试setUp  改成 这样子 才会由Spring托管,注入啊
 ProjectDao pro = ctx.getBeans("projectDao");

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧