首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

struts2.21+spring2.5+hibernate3.2,求解依赖注入空指针(来者有分),该怎么解决

2013-09-11 
struts2.21+spring2.5+hibernate3.2,求解依赖注入空指针(来者有分)-------------------Struts------------

struts2.21+spring2.5+hibernate3.2,求解依赖注入空指针(来者有分)
-------------------Struts---------------------

Java code
<?xml version="1.0" encoding="UTF-8" ?>  <!DOCTYPE struts PUBLIC      "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"      "http://struts.apache.org/dtds/struts-2.0.dtd">  <struts>              <constant name="struts.objectFactory" value="spring" />      <package name="struts2"  extends="struts-default">          <global-results>                  <result name="error">/login.jsp</result>          </global-results>          <action name="login" class="LoginAction" method="doLogin">                      <result name="success">/index.jsp</result>                       <result name="error">/login.jsp</result>          </action>      </package>  </struts>


-------------------------applicationContext.xml---------------------------
Java code
<bean id="UserBasicInfoDAO" class="model.UserBasicInfoDAO">        <property name="sessionFactory">            <ref bean="sf" />        </property>    </bean>        <bean id="LoginImpl" class="impl.LoginImpl" >        <property name="userBasicInfoDAO" ref="UserBasicInfoDAO" />    </bean>        <bean id="LoginAction" class="action.LoginAction" >        <property name="loginImpl" ref="LoginImpl" />    </bean>


-----------------------------------web.xml----------------------
Java code
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"     xmlns="http://java.sun.com/xml/ns/javaee"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>    <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath:applicationContext.xml</param-value>    </context-param>        <listener>        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    </listener>         <filter>        <filter-name>ssh2</filter-name>        <filter-class>             org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter            <!-- org.apache.struts2.dispatcher.FilterDispatcher-->        </filter-class>    </filter>    <filter-mapping>        <filter-name>ssh2</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>    </web-app>----------------------------LoginAction----------------------------package action;import model.UserBasicInfo;import impl.LoginImpl;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport{        private UserBasicInfo userBasicInfo;        private LoginImpl loginImpl;        public LoginImpl getLoginImpl() {        return loginImpl;    }    public void setLoginImpl(LoginImpl loginImpl) {        System.out.println("set LoginImpl");        this.loginImpl = loginImpl;    }    public String doLogin() throws Exception {        // TODO Auto-generated method stub        System.out.println("userId-------------"+userBasicInfo.getUserId());        UserBasicInfo userBasicInfo1=loginImpl.getUserBasicInfo(userBasicInfo.getUserId());//loginImpl空指针        if(userBasicInfo1!=null)        {            System.out.println("登录成功");            return SUCCESS;        }else        {            System.out.println("登录失败");            return ERROR;        }    }    public UserBasicInfo getUserBasicInfo() {        return userBasicInfo;    }    public void setUserBasicInfo(UserBasicInfo userBasicInfo) {        this.userBasicInfo = userBasicInfo;    }}---------------------------------LoginImpl----------------------------[code=Java]package impl;import model.UserBasicInfo;import model.UserBasicInfoDAO;public class LoginImpl {    private UserBasicInfoDAO userBasicInfoDAO;    public UserBasicInfoDAO getUserBasicInfoDAO() {        return userBasicInfoDAO;    }    public void setUserBasicInfoDAO(UserBasicInfoDAO userBasicInfoDAO) {        System.out.println("set userbasicinfodao");        this.userBasicInfoDAO = userBasicInfoDAO;    }        public UserBasicInfo getUserBasicInfo(int userId)    {        return userBasicInfoDAO.findById(userId);    }} 



[/code]
----------------------------------错误信息--------------------
Java code
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception java.lang.NullPointerException    action.LoginAction.doLogin(LoginAction.java:26)    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)    java.lang.reflect.Method.invoke(Unknown Source)    com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)    com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)    com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)    org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)    org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs. 





[解决办法]
private LoginImpl loginImpl;改成private LoginImpl loginImpl = new LoginImpl();
试一下
[解决办法]
应该是userBasicInfo.getUserId()这个报的空指针吧 你对user里的id属性进行set方法了吗 你没对他set值 取不出来get值吧
[解决办法]
userBasicInfo 有值么?
[解决办法]
探讨

userBasicInfo 有值么?

[解决办法]
那你干脆把spring配置文件中的bean的id都用小写开头配置试试
[解决办法]
spring配置文件中的bean的id都用小写开头配置
大写的时候会有问题
[解决办法]
<ref bean="sf" /> 在哪引的???sf在哪??
我的异常网推荐解决方案:The server encountered an internal error () that prevented it from fulfilling this request.,http://www.myexception.cn/java-web/317.html

热点排行