当前位置: 代码迷 >> J2EE >> SSH架构登录注册是出现java.lang.NullPointerException 求解啊该如何处理
  详细解决方案

SSH架构登录注册是出现java.lang.NullPointerException 求解啊该如何处理

热度:95   发布时间:2016-04-22 01:52:06.0
SSH架构登录注册是出现java.lang.NullPointerException 求解啊!
本人郁闷啊,难道UserService没有注入到Action中啊??求高人解答
java.lang.NullPointerException
com.portal.user.web.UserAction.login(UserAction.java:44)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

UserAction代码:
Java code
package com.portal.user.web;import java.util.Map;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;import com.portal.user.model.User;import com.portal.user.service.IUserService;//通过实现ModelDriven来获取表单的内容public class UserAction extends ActionSupport implements ModelDriven<User>{    private static final Logger log =        (Logger) LoggerFactory.getLogger(UserAction.class);    private IUserService userService;        private User model = new User();    //private String username;      //private String password;    //private String email;        @Override    public User getModel() {        // TODO Auto-generated method stub        return model;    }    //依赖注入业务逻辑组件    public void setUserService(IUserService userService) {        this.userService = userService;    }        /*     * 处理用户登录     * */    public String login(){        log.debug("user login!");        Map session = ActionContext.getContext().getSession();        //获取用户请求的表单的值        try{            //查找是否有该用户            int va = userService.login(model.getUserName(), model.getPassWord());            //如果没有,返回错误界面            if(va!=-1){                //把用户名放入session对象                session.put("username", model.getUserName());                userService.addUser(model);                return SUCCESS;            }        }catch(RuntimeException e){            log.error("login failed", e);            throw e;        }        return LOGIN;    }        /**     * 用户注册     * */    public String register()throws Exception{        log.debug("User register!");        int emailnum=1;        //try{            //查找用户名是否已经存在            int va = userService.findUserByName(model.getUserName());            if(va!=-1){                //邮箱是否注册过了                emailnum = userService.findByEmail(model.getEmail());                if(emailnum!=-1){                    userService.addUser(model);                    return SUCCESS;                }            }        return INPUT;    }}


application中的配置:
XML code
<bean id="UserDAO" class="com.portal.user.dao.UserDAO">        <property name="sessionFactory">            <ref bean="sessionFactory"></ref>        </property>    </bean>    <!-- 部署业务逻辑组件,并把它所依赖的DAO组件注入到业务逻辑组件中 -->    <bean id="UserService" class="com.portal.user.service.UserService">        <property name="userDAO" ref="UserDAO"></property>    </bean>    <!-- 把业务逻辑组件注入到Action中 -->    <bean id="UserAction" class="com.portal.user.web.UserAction">        <property name="userService" ref="UserService"></property>    </bean>


本人根据异常的断点来看
44行的 int va = userService.login(model.getUserName(), model.getPassWord());这句 userService的值是null,是不是这个原因呢? 他应该注入到action中了的,奇怪了。

------解决方案--------------------
把你错误信息贴完全
------解决方案--------------------
你的action的范围也有问题,bean的范围默认是单例,action是web的,能单例?
------解决方案--------------------
  相关解决方案