搭建的struts2、spring、Hibernate框架。
用的sql server2005数据库。
在Myeclipse Database 里边成功配置了数据库。然后用Hibernate自动生成DAO。在Action里边调用DAO里边自动生成的save或者findAll方法的时候。都报NullPointerException 空指针错误。。刚学习J2EE没多久哈。  求大神指点。

解决方案 »

  1.   

    都报NullPointerException
    那应该是你注入有问题!!!
    调试看看是不是Action中的Dao对象都是null的!如果都是就贴出你的注入配置跟代码!
      

  2.   

    看action 代码与spring配置注入,可以确定是spring注入有问题 
      

  3.   

    Action里边的代码。 注入配置是什么样的文件?ChildDocDAO dao = new ChildDocDAO();
    //dao.save(doc);

    List list = dao.findAll();
    HttpSession sess = request.getSession();
    sess.setAttribute("docList", list);

    if(list.size()>0)
    {
    return SUCCESS;
    }
    else {
    return ERROR;
    }
      

  4.   

    new的dao肯定不行要改 先去学习学习再搭建框架吧!完全不懂弄出来也没什么意思!
      

  5.   


    哥、你的dao直接new?
    那你Spring干什么啊?
    强烈建议LZ去google一个SSH登录的例子看看!
      

  6.   

    applicationContext.xml里面的<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref bean="dataSource" />
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">
    org.hibernate.dialect.SQLServerDialect
    </prop>
    </props>
    </property>
    <property name="mappingResources">
    <list> <value>com/kd/DAO/ChildDoc.hbm.xml</value></list>
    </property></bean>
    <bean id="ChildDocDAO" class="com.kd.DAO.ChildDocDAO">
    <property name="sessionFactory">
    <ref bean="sessionFactory" />
    </property>
    </bean>
      

  7.   

    嗯!楼主去找个例子看看 spring的依赖注入是怎么做的! 很好理解 楼主加油!
      

  8.   


    你这个只配置了一个Dao的bean、还得配置一个Action的!
    最后还得在Action注入Dao对象:
    Action:
    private ChildDocDAO cdao;
    public void setCdao(ChildDocDAO cdao) {
    this.cdao= cdao;
    }
    <!-- Action -->
    <bean id="ChildDocAction" class="com.kd.action.ChildDocAction">
         <!-- Action的Dao对象名 -->   
         <property name="cdao">
                <!-- Dao bean的id名称 -->   
                <ref bean="ChildDocDAO" />
            </property>
        </bean>