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 有值么?
[解决办法]
[解决办法]
那你干脆把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