SSH2项目整合
  jsp页面出现如下错误
com.study.action.StudentAction.execute(StudentAction.java:32)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
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:138)
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:270)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
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:498)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:434)
  麻烦各位帮帮忙

解决方案 »

  1.   

    com.study.action.StudentAction.execute(StudentAction.java:32)StudentAction.java 这个文件的第 32 行代码是啥?以及相关代码行。
      

  2.   

     List list=studentService.query(username, password);
      

  3.   

    public class StudentDaoImpl extends HibernateDaoSupport implements StudentDao { @Override
    public List query(String username, String password) {
    // TODO Auto-generated method stub
       List list=(List)getHibernateTemplate().find("from Student student where student.name='"+username+"'");
      
       return list;
    }
      

  4.   

    那就是说:
    studentService 是NULL你可以:System.out.println("studentService: " + studentService); 看看
    然后就是检查你的注入配置是否有问题了,为啥会导致没得到studentService。
      

  5.   

    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.xsd">
      <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
    <property name="driverClassName">
    <value>com.mysql.jdbc.Driver</value>
    </property>
    <property name="url">
    <value>jdbc:mysql:///database</value>
    </property>
    <property name="username">
    <value>root</value>
    </property>
    <property name="password">
    <value>123456</value>
    </property>
    </bean>
    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">
    org.hibernate.dialect.MySQLDialect
    </prop>
    <prop key="hibernate.show_sql">true</prop>
    </props>
    </property>
    <property name="mappingResources">
    <list>
    <value>com/test/domain/Student.hbm.xml</value> </list>
    </property>
    </bean>
    <bean id="studentdao" class="com.study.dao.impl.StudentDaoImpl">
    <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <bean id="studentservice" class="com.study.service.impl.StudentServiceImpl">
    <property name="studentDao" ref="studentdao"></property>
    </bean>
    <bean id="studentaction" class="com.study.action.StudentAction" scope="prototype">
    <property name="studentService" ref="studentservice"></property>
    </bean>

    </beans>
      

  6.   

      System.out.println("studentService: " + studentService);
      输出 null
      

  7.   

    问题都找出来了啊
    studentService=null,你看看为什么会为null,看哪里注入值有问题
      

  8.   

    配置文件似乎没错。你是怎么定义StudentAction的?是用的Spring MVC 么?
      

  9.   

    public class StudentAction extends ActionSupport {
    private StudentService studentService;
    private String username;
    private String password;
       
          
     @Override
    public String execute() throws Exception {
    // TODO Auto-generated method stub
     HttpServletRequest request=ServletActionContext.getRequest();
     request.setCharacterEncoding("utf-8");
     HttpSession session=request.getSession();
     session.setAttribute("username", username);
     session.setAttribute("password", password);
     ServletActionContext.getResponse().setCharacterEncoding("utf-8");
     System.out.println("studentService: " + studentService);
     System.out.println(password+"    "+username);
     List list=studentService.query(username, password);


     if(list.size()!=0)
     return SUCCESS;
     else
     return "register";

    }
      

  10.   

    private StudentService studentService;
    没提供set方法么?
      

  11.   


    lz,可以试试加上set方法。
      

  12.   

    你的注入写错了 
    <bean id="studentaction" class="com.study.action.StudentAction" scope="prototype">
    <property name="studentService" ref="studentservice"></property>
    </bean>
     应改成 
    <bean id="studentaction" class="com.study.action.StudentAction" scope="prototype">
    <property name="studentDao" ref="studentdao"></property>
    </bean>
      

  13.   

    不好意思楼主 我刚才看错了    估计是你的  studentService的注入的问题  看看自己的set 是否写错 
    不过最好是让eclipse自动写   写完变量  右键 source->generator getters and setters
      

  14.   

       很感谢大家的帮助,本人估计应该是application.xml配置文件有问题,但一直找不出来错误,好长时间没碰java了,学了编程,却做了物流管理,估计在编程上没有什么作为了。今天从朋友处拷了份SSH2的框架,终于跑起来了,赶快把毕业设计糊弄过去!!!
    很感谢大家的帮忙