我在action中为什么拿不到我xml中注入的action里的userService
actionpublic class SaveAction extends Action {
/*
 * Generated Methods
 */ private IUserService userService; 

public IUserService getUserService() {
return userService;
} public void setUserService(IUserService userService) {
this.userService = userService;
}

/** 
 * Method execute
 * @param mapping
 * @param form
 * @param request
 * @param response
 * @return ActionForward
 */
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
  SaveForm loginForm = (SaveForm) form;// TODO Auto-generated method stub
User user = new User();
user.setName(loginForm.getName());
this.userService.save(user); //插入的方法
return null;
}
}applicationContext.xml<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans> <bean id="beanID" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver">
</property>
<property name="url"
value="jdbc:sqlserver://localhost:1434;databaseName=test">
</property>
<property name="username" value="sa"></property>
<property name="password" value="xxxxx"></property>
</bean>

<bean id="sessinFatoryID"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="beanID" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/xxxx/hibernate/xml/User.hbm.xml</value>
</list>
</property>
</bean>
<bean id="userDao" class="com.xxxx.hibernate.dao.UserDAO" >
<property name="sessionFactory">
<ref bean="sessinFatoryID"/>
</property>
</bean>
     <bean id="userService" class="com.xxxx.service.impl.UserService">
<property name="userDAO">
<ref bean="userDao"/>
</property>
 </bean>
<bean name="/addUser" class="com.xxxx.struts.action.SaveAction">
<property name="userService">
<ref bean="userService" />
</property>
</bean>
</beans> 
userService无法注入

解决方案 »

  1.   

    空指针异常:  也就是action中this.userService == null   
      

  2.   

    空指针异常: 也就是action中的this.userService == null
      

  3.   

    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: java.lang.NullPointerException
    org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    root cause java.lang.NullPointerException
    com.rexcel.struts.action.SaveAction.execute(SaveAction.java:54)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    note The full stack trace of the root cause is available in the JBossWeb/2.0.1.GA logs.
    --------------------------------------------------------------------------------JBossWeb/2.0.1.GA
      

  4.   

    你注入的类型对吗?userService再action里面怎么成了IUserService了
      

  5.   

    IUserService 是com.xxxx.service.impl.UserService的接口
      

  6.   

    this.userService.save(user);    //插入的方法  把this去了
    userService.save(user);    直接用这个看行不
      

  7.   

    <bean name="/addUser" class="com.xxxx.struts.action.SaveAction"> name定义错误
      

  8.   

    能个类测试一下。public class Test
    {
    public static void main(String[] args)
    {
    // TODO Auto-generated method stub
    ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
    UserDao userDao=(UserDao) ac.getBean("userDao");
    userDao.getAll();
    }}