日期:2014-05-18  浏览次数:20827 次

ssh dao层空指针 查询第一个表没问题 第二个表总是空指针 删除第一个表的查询和在spring中的配置第二个表就不报错了 不知道为什么
在查询第一个表 user表时没问题 可查询第二个表时总报空指针 我把查询第一个表的程序和配置文件里的内容都删除后 在测试就不报错了 是不是我的配置文件写的有什么冲突

applicationContext-web
<bean id="userAction" class="com.paraview.test.web.UserAction">
<property name="userService" ref="iuserSer"/>
</bean>

<bean id="categoryAction" class="com.paraview.test.web.CategoryAction">
<property name="categoryService" ref="icategoryService"/>
</bean>

applicationgContext-biz

<bean id="iuserSer" class="com.paraview.test.biz.impl.IUserService">
<property name="iuserDao" ref="iuserDaoImpl"/>
</bean>
<bean id="icategoryService" class="com.paraview.test.biz.impl.ICategoryService">
<property name="iCategoryDao" ref="icategoryDaoImpl"/>
</bean>

applicationgContext-dao

<bean id="iuserDaoImpl" class="com.paraview.test.dao.impl.IUserDao">
    <property name="sessionFactory" ref="sessionFactory"/>
       </bean>

<bean id="icategoryDaoImpl" class="com.paraview.test.dao.impl.ICategoryDao">
<property name="sessionFactory" ref="sessionFactory"/>

</bean>


dao层代码
public class ICategoryDao extends HibernateDaoSupport implements CategoryDao{
@SuppressWarnings("unchecked")
public  List<Category> findAllCategory() throws Exception {

String hql="from Category c where c.parentId is not null order by c.turn";
return this.getHibernateTemplate().find(hql);




}

juint测试报错java.lang.NullPointerException
at com.paraview.test.test.IUserDaoTest.testFindAllCategory(IUserDaoTest.java:55)
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 org.springframework.test.context.junit4.SpringTestMethod.invoke(SpringTestMethod.java:160)
at org.springframework.test.context.junit4.SpringMethodRoadie.runTestMethod(SpringMethodRoadie.java:233)
at org.springframework.test.context.junit4.SpringMethodRoadie$RunBeforesThenTestThenAfters.run(SpringMethodRoadie.java:333)
at org.springframework.test.context.junit4.SpringMethodRoadie.runWithRepetitions(SpringMethodRoadie.java:217)
at org.springframework.test.context.junit4.SpringMethodRoadie.runTest(SpringMethodRoadie.java:197)
at org.springframework.test.context.junit4.SpringMethodRoadie.run(SpringMethodRoadie.java:143)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.invokeTestMethod(SpringJUnit4ClassRunner.java:160)
at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoa