谢谢大家,很急的!
这是Biz层的方法
     public Goods get(long id) {
// TODO Auto-generated method stub
System.out.println("在Biz层输出:"+id);
               // 这个Id没问题。值传到了.等到调用是就出错了,
return goodsDAO.get(id);

}
这是Dao层的方法  public Goods get(long id) {
// TODO Auto-generated method stub
return (Goods)super.getHibernateTemplate().get(Goods.class, id);
                //super是HibernateDaoSupport

}当我在Action 里面的public ActionForward doBid(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
GoodsBiz goodsbiz=new GoodsBiz();
// GoodsDAOImpl goodsbiz=new GoodsDAOImpl();
DynaActionForm bidform=(DynaActionForm)form;
String goods_id=(String) request.getParameter("goods_id");
System.out.println("转换goods_id"+goods_id);
//出价商品的id
long id=Long.parseLong(goods_id);
Goods goods=goodsbiz.get(id);    //出错地方

}

出错是的提示:
   严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at com.dsf.biz.GoodsBiz.get(GoodsBiz.java:35)
at com.dsf.struts.action.BidAction.doBid(BidAction.java:57)
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)

解决方案 »

  1.   

    可能是你在Spring的配置文件,biz层中未把goodsDao注入吧~具体你把完整的代码贴出来拉~
      

  2.   

         private GoodsDAOImpl goodsDAO=null;     public void setGoodsDAO(GoodsDAOImpl goodsDAO) {
    this.goodsDAO = goodsDAO;
    }
        被注入的goodsDAO
       public Goods get(long id) {
    // TODO Auto-generated method stub
    System.out.println("在Biz层输出:"+id);
    if(goodsDAO==null){
    System.out.println("goodsDAO is null");
    }
    return goodsDAO.get(id);

    }

            public List getOnSaleGoodsList(){
    System.out.println("1");
    List list=goodsDAO.getOnSaleGoodsList();
    if(goodsDAO!=null){
    System.out.println("goodsDAO is ok");
    }
    return list;
    }

    以上两个方法都是Biz层的,goodsDAO在这个应用中goodsDAO.getOnSaleGoodsList();非空。我做的
    验证:
    if(goodsDAO!=null){
    System.out.println("goodsDAO is ok");
    }
    结果是:goodsDAO is ok!都出来了,而且这个方法我在首页就用到了,返回了可用的list。但是在:goodsDAO.get(id);就在这个方法中goodsDAO是空的,验证如下:           if(goodsDAO==null){
    System.out.println("goodsDAO is null");
    }
              也通过验证了,结果是:goodsDAO is null这说明我在Spring的配置文件,biz层中把goodsDao已经注入,下面是配置:<beans>xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
    <bean id="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName"
    value="com.microsoft.jdbc.sqlserver.SQLServerDriver">
    </property>
    <property name="url"
    value="jdbc:microsoft:sqlserver://localhost:1433">
    </property>
    <property name="username" value="sa"></property>
    <property name="password" value="sa"></property>

    </bean><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>
    <prop key="hibernate.show_sql">true</prop>
    </props>
    </property>

    <property name="mappingResources">
    <list>
    <value>com/dsf/entity/Goods.hbm.xml</value>
    <value>com/dsf/entity/Euser.hbm.xml</value>
    <value>com/dsf/entity/Bid.hbm.xml</value></list>
    </property>

    </bean><!-- 第二个action --><!-- DAO层goodsBean -->
    <bean id="goodsDAO" class="com.dsf.dao.impl.GoodsDAOImpl">
    <property name="sessionFactory" ref="sessionFactory">
    </property>
    </bean>
    <!-- 业务层goods-->
    <bean id="goodsBizTarget" class="com.dsf.biz.GoodsBiz">
    <property name="goodsDAO" ref="goodsDAO"></property>
    </bean> <!-- goodsAction -->
    <bean name="/goods" class="com.dsf.struts.action.GoodsAction">
    <property name="goodsBizProxy" ref="goodsBizProxy">
    </property>
    </bean>      <!-- 声明事务管理器 -->
     bean id="myTranscationBean"   class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <!-- 声明代理bean-->
    <bean id="goodsBizProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    <property name="transactionManager" ref="myTranscationBean"> </property>
    <property name="target" ref="goodsBizTarget"></property>
    <property name="transactionAttributes">
    <props>
    <prop key="*">PROPAGATION_REQUIRED</prop>
    </props>
    </property>
    </bean>
    </beans>本人很急,谢谢各位!
      

  3.   

    Goods goods=goodsbiz.get(id);    //出错地方 这里有问题啊  goodsbiz这个应该是空指针对象你是想把它注入到action吗?既然是想依赖注入到action 为什么这里还要new一下呢
    GoodsBiz goodsbiz=new GoodsBiz();
      

  4.   

    既然GoodsBiz已经依赖注入到action中,那为什么还要 GoodsBiz biz=new GoodsBiz()?直接在action中声明一个GoodsBiz 给予一个set()方法spring会自动创建的
    你new出来的对象没用