我自认为服务器启动没有问题,说明它已经成功加载了applicationContext.xml这个文件啊!!那怎么用不了spring注入的属性了。
我不用那个注入的属性,自己new的话没有问题;还有在Dao层中我一加这句getHibernateTemplate().find("from Jobs");它也报NullPointerException;
applicationContext.xml代码::
<?xml version="1.0" encoding="UTF-8"?>
<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>net.sourceforge.jtds.jdbc.Driver</value>
             </property> 
              <property name="url">
                  <value>jdbc:jtds:sqlserver://localhost:1433/pubs</value>
             </property>
              <property name="username">
                  <value>login</value>
             </property>
              <property name="password">
                  <value>4255095</value>
             </property>
             
             
             <!-- 将数据源注入到Session工厂 -->
    </bean>
    <bean id="sessionFactory"  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
              <property name="dataSource">
                      <ref bean="dataSource"/>
              </property> 
              <property name="mappingResources">
                     <value>cn/com/conpress/pojo/Jobs.hbm.xml</value>
              </property>
              <property name="hibernateProperties">
   <props>
      <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
      <prop key="hibernate.show_sql">true</prop>
   </props>
 </property>
    </bean>
               <!-- 把Dao注入给session工厂 -->
      <bean id="jobsdao" class="cn.com.corepress.daoImpl.DaoJobsImpl">
               <property name="sessionFactory">
                      <ref bean="sessionFactory"/>
               </property>
      </bean>
               <!-- 把Service注入dao -->
      <bean id="jobsservice" class="cn.com.conpress.serviceImpl.ServiceJobsImpl">
               <property name="jobsdao">
                      <ref bean="jobsdao"/>
               </property>
      </bean>
               <!-- 把Action注入service -->
      <bean name="login" class="cn.com.conpress.action.ActionJobs"  scope="prototype">
              
                     <property name="jobsservice">
                      <ref bean="jobsservice"/>
                    </property>
                
      </bean>
      <!-- 
       <bean name="/login" class="com.dream.struts.action.LoginAction"  
         abstract="false" lazy-init="default" autowire="default"  
          dependency-check="default">  
         <property name="userService">  
              <ref bean="userServiceImpl" />  
          </property>  
      </bean>
       -->
</beans>
action 类中代码:
package cn.com.conpress.action;import java.util.List;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.ServletActionContext;import cn.com.conpress.pojo.Jobs;
import cn.com.conpress.service.ServiceJobs;
import cn.com.conpress.serviceImpl.ServiceJobsImpl;
import cn.com.corepress.daoImpl.DaoJobsImpl;import com.opensymphony.xwork2.ActionSupport;public class ActionJobs extends ActionSupport { private ServiceJobs jobsservice;
public ServiceJobs getJobsservice() {
return jobsservice;
} public void setJobsservice(ServiceJobs jobsservice) {
this.jobsservice = jobsservice;
}
 
 private static final long serialVersionUID = 1L;

public String sshGetAllJobs() throws Exception {
   ServiceJobs jobsservice = new ServiceJobsImpl();
   HttpServletRequest request = ServletActionContext.getRequest(); 
   DaoJobsImpl jj = new DaoJobsImpl();
   List<Jobs> jobsList = jj.getAllJobs();
    request.setAttribute("list1", jobsList);
 // request.setAttribute("list", "<font color='red' size='3'>hello world!!!</font>");
  System.out.println("------------dd---------------");
 return "success";
}
}

解决方案 »

  1.   

    建议lz好好去理解注入的概念既然你已经在action里面注入了service
    那为什么还要ServiceJobs jobsservice = new ServiceJobsImpl(); ???这么写了还用spring干嘛?
      

  2.   

    action里已经有set方法了,就不必要new了,你用debug调试一下,那个地方为空值了。另外最好把你的错误贴出来。
      

  3.   

       空指针的原因应该是:你new了一个Service对象去调用dao的方法  但是数据源你没有办法new 呀   所以报空指针了 
      

  4.   

    dao层注入的应该是sessionFactroy,biz层应该注入dao,action注入biz
      

  5.   

    你的action类中应该用set方法,spring注入对象时调的是set
      

  6.   


     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
      <property name="driverClassName" value="com.mircosoft.sqlserver.jdbc.SQLServiceDervice">
      
      </property>  
      <property name="url" value="jdbc:sqlservice://localhost:10433;databasename=pubs"></property>
      <property name="username" value="login"> </property>
      <property name="password" value="4255095"></property>
        
        
      <!-- 将数据源注入到Session工厂 -->
      </bean>
      <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
      <property name="dataSource" ref="dataSource"></property> 
      
       
      <property name="mappingResources">
      
       <list>
       <value>cn/com/conpress/pojo/Jobs.hbm.xml</value>
       </list>
      </property>
      
      
      <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    </props>
    </property>



      </bean>
      <!-- 把Dao注入给session工厂 -->
      <bean id="jobsdao" class="cn.com.corepress.daoImpl.DaoJobsImpl">
      <property name="sessionFactory">
      <ref bean="sessionFactory"/>
      </property>
      </bean>
      <!-- 把Service注入dao -->
      <bean id="jobsservice" class="cn.com.conpress.serviceImpl.ServiceJobsImpl">
      <property name="jobsdao">
      <ref bean="jobsdao"/>
      </property>
      </bean>
      <!-- 把Action注入service -->
      <bean name="login" class="cn.com.conpress.action.ActionJobs" scope="prototype">
        
      <property name="jobsservice">
      <ref bean="jobsservice"/>
      </property>
        
      </bean>
    给你重新整理了一下,
    <property name="mappingResources">
      
       <list>
       <value>cn/com/conpress/pojo/Jobs.hbm.xml</value>
       </list>
      </property>
    这个要加list