
一个关于SSH(struts2.1+spring3.0+hibernate3.3)配置的问题,高手帮下忙啊,问题如下,急等!!!!!!
我建了一个junit测试DAO层的数据操作,结果异常如下:java.lang.NullPointerExceptionatorg.springframework.orm....
我建了一个junit测试DAO层的数据操作,结果
异常如下:
java.lang.NullPointerException
at org.springframework.orm.hibernate3.support.HibernateDaoSupport.getSession(HibernateDaoSupport.java:143)
at com.fei.dao.impl.IUserDAOImpl.login(IUserDAOImpl.java:17)
at com.fei.test.test.testTestCase(test.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
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)
IUserDAOImpl.java:17行代码是:Session session = getSession();
junit测试 test.java:87行代码: System.out.println("222222"+iUserDAO.login("huangfei", "123456"));
在junit测试方法中直接new 一个IUserDAOImpl,调用login方法就发生上述错误,
但是在junit测试方法中加上以下代码
ApplicationContext bf = new ClassPathXmlApplicationContext("applicationContext.xml");
IUserDAO iUserDAO = (IUserDAOImpl)bf.getBean("iuserDao");
就能够正常显示结果!!
applicationContext.xml 配置文件中
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
。。。。。。中间省略
</bean>
<bean id="iuserDao" class="com.fei.dao.impl.IUserDAOImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
到底是DAO注入spring失败还是无法获取bean啊,是否配置错误啊,使之找不出那儿有问题啊,这个好像是spring整合hibernate有问题应该与struts无关,测试单元中加上
ApplicationContext bf = new ClassPathXmlApplicationContext("applicationContext.xml"); 就能正常显示,是不是hibernate无法获取applicationContext.xml 配置文件啊,唉,烦恼啊,整了一天,也上网查看了下,还是没解决,高手救命啊,很急!hibernate的配置文件没有!
在jsp页面中向数据库中写入数据能够正常写入,但是查询数据并显示结果就不行了!! 展开
异常如下:
java.lang.NullPointerException
at org.springframework.orm.hibernate3.support.HibernateDaoSupport.getSession(HibernateDaoSupport.java:143)
at com.fei.dao.impl.IUserDAOImpl.login(IUserDAOImpl.java:17)
at com.fei.test.test.testTestCase(test.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
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)
IUserDAOImpl.java:17行代码是:Session session = getSession();
junit测试 test.java:87行代码: System.out.println("222222"+iUserDAO.login("huangfei", "123456"));
在junit测试方法中直接new 一个IUserDAOImpl,调用login方法就发生上述错误,
但是在junit测试方法中加上以下代码
ApplicationContext bf = new ClassPathXmlApplicationContext("applicationContext.xml");
IUserDAO iUserDAO = (IUserDAOImpl)bf.getBean("iuserDao");
就能够正常显示结果!!
applicationContext.xml 配置文件中
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
。。。。。。中间省略
</bean>
<bean id="iuserDao" class="com.fei.dao.impl.IUserDAOImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
到底是DAO注入spring失败还是无法获取bean啊,是否配置错误啊,使之找不出那儿有问题啊,这个好像是spring整合hibernate有问题应该与struts无关,测试单元中加上
ApplicationContext bf = new ClassPathXmlApplicationContext("applicationContext.xml"); 就能正常显示,是不是hibernate无法获取applicationContext.xml 配置文件啊,唉,烦恼啊,整了一天,也上网查看了下,还是没解决,高手救命啊,很急!hibernate的配置文件没有!
在jsp页面中向数据库中写入数据能够正常写入,但是查询数据并显示结果就不行了!! 展开
4个回答
展开全部
at com.fei.dao.impl.IUserDAOImpl.login(IUserDAOImpl.java:17)
注意看错误提示
你的IUserDAOImpl第17行是什么内容?
注意看错误提示
你的IUserDAOImpl第17行是什么内容?
展开全部
1.报的是空指针异常::Session session = getSession();请检查getSession() 是否返回空
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
at com.fei.dao.impl.IUserDAOImpl.login(IUserDAOImpl.java:17)
问题有可能是这里,我猜的是你传过来的字符串为空。你看看。
问题有可能是这里,我猜的是你传过来的字符串为空。你看看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我写了7000多字,百度个垃圾不显示。我也没心情在写了。你直接HI我,我给你详细说下。教你到会为止。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询