日期:2014-05-19  浏览次数:20763 次

s2sh DAO nullpoint异常的问题,求解!!谢谢!
Jdk1.6, spring3,struts2,hibernate3,eclipse v4.2,junit4

@Test
public void testSave() {
// 这个要根据需要进行修改,在classes路径中去寻找配置文件。
ApplicationContext ctx = 
   new ClassPathXmlApplicationContext("beans.xml");

userDao = (IUserDao) ctx.getBean("userDao");

UserInfo user = new UserInfo();
user.setId(0);//这句话加或没加都一样的错误
user.setAge(0);
user.setName("jack");
user.setPassword("123456");
userDao.save(user);
}

测试时提示下列异常
java.lang.NullPointerException
at com.assistant.dao.impl.AbstractBaseDao.save(AbstractBaseDao.java:48)
at com.assistant.dao.impl.TestUserDao.testSave(TestUserDao.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:46)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:43)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:270)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:62)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:52)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:307)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

------最佳解决方案--------------------
感觉你呈现出来的代码没什么问题,估计是配置文件什么的出错了。NullPointer异常情况太多了。
------其他解决方案--------------------
是不是没有注入@resoure
------其他解决方案--------------------
楼主看一下你的DataSource有没有问题,可能是配置sessionFactory时出问题了。
另外,楼主以后发贴时,格式化一下代码部分,这样看起来没那么累
------其他解决方案--------------------
at com.assistant.dao.impl.AbstractBaseDao.save(AbstractBaseDao.java:48) 这里有问题

看看你的dao代码。继承hibernate了吗
------其他解决方案--------------------
spring配置文件要配置service和dao
------其他解决方案--------------------
@Component 只是注入了一些POJO吧, 其他的dao,service你注入了吗?
1、@controller 控制器(注入服务)
2、@service 服务(注入dao)
3、@repository dao(实现dao访问)
------其他解决方案--------------------