程序应该不存在包重复问题,web.xml配置文件:
<context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:com/mch/config/applicationContext.xml</param-value>
  </context-param>
调试时,已经可以获取到所输入的用户名、密码.唯独users这个对象为空.不知是否因为没有实例化造成.

解决方案 »

  1.   

    代码跟下面这个博客上的是一样的,唯一的差别就是命名的大小写不一样或者名字不一样而已
    http://blog.csdn.net/zhdjbabygo/article/details/7730791
      

  2.   

    嗯,不过空指针问题解决不了,实在不知道怎么弄了.你知道解决方法么?
    我看了一下这个配置步骤,里面没有提到users,所以我也不清楚你这个action 16行是不是users,还是一步步去找一下,看看users的值应该从那里来,为什么没有赋值进去。
      

  3.   

    你的users 不会是把人家的  private UserService userService;  这行改成private UserService users;  了把?
      

  4.   

    package com.mch.action;
    import com.mch.action.bean.BeanAction;
    import com.mch.service.UserService;public class LoginAction extends BeanAction { private static final long serialVersionUID = 7803370514585593518L;
    private UserService users;
    private String username;
    private String userpass;

    public String execute(){
    try{
    if(users.login(username, userpass))
    return "success";
    return "error";
    }catch(Exception e){
    e.printStackTrace();
    return "error";
    }
    } public String getUsername() {
    return username;
    } public void setUsername(String username) {
    this.username = username;
    } public String getUserpass() {
    return userpass;
    } public void setUserpass(String userpass) {
    this.userpass = userpass;
    } public void setUsers(UserService users) {
    this.users = users;
    }
    }
      

  5.   

    嗯,是的.这个有关系么?
    那关系大了,这个事例中的spring 配置文件确实配置,没有把service层和dao层配进去的,也就是UserService 
    根本没有实例化。
      

  6.   

    嗯,是的.这个有关系么?
    那关系大了,这个事例中的spring 配置文件确实配置,没有把service层和dao层配进去的,也就是UserService 
    根本没有实例化。
    嗯,我也怀疑是这个,但是实在不知道怎么配置,找了类似的例子根据解决方法配置,程序就不到execute方法里去,而且报另外一种异常.所以才来这里请教.
      

  7.   

    嗯,是的.这个有关系么?
    那关系大了,这个事例中的spring 配置文件确实配置,没有把service层和dao层配进去的,也就是UserService 
    根本没有实例化。
    嗯,我也怀疑是这个,但是实在不知道怎么配置,找了类似的例子根据解决方法配置,程序就不到execute方法里去,而且报另外一种异常.所以才来这里请教.给你个方向,这个事例的配置都不用动,只是需要再添加一些配置,建议去看一下spring的依赖注入和spring的事务管理配置,基本上就缺这两部分配置,在spring配置文件中加这两方面的配置就应该可以了,可不是两行配置代码哈,只能帮到这里了,在说就该给你贴代码了,结贴给分慢慢去学习把。
      

  8.   

    给你个方向,这个事例的配置都不用动,只是需要再添加一些配置,建议去看一下spring的依赖注入和spring的事务管理配置,基本上就缺这两部分配置,在spring配置文件中加这两方面的配置就应该可以了,可不是两行配置代码哈,只能帮到这里了,在说就该给你贴代码了,结贴给分慢慢去学习把。<?xml version="1.0" encoding="UTF-8"?>
    <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-2.5.xsd"
    default-autowire="byName" default-lazy-init="true"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
    <property name="url" value="jdbc:sqlserver://localhost:1434;database=shoppingDB"/>
    <property name="username" value="sa"/>
    <property name="password" value="123456"/>
    </bean>
    <bean id="MySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref bean="dataSource"/>
    </property>
    <property name="mappingResources">
    <value>com/mch/config/user.hbm.xml</value>
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.format_sql">true</prop>
    </props>
    </property>
    </bean>
    <bean id="uDao" class="com.mch.dao.impl.UserDaoImpl">
    <property name="sessionFactory" ref="MySessionFactory"/>
    </bean>
    <bean id="uService" class="com.mch.service.impl.UserServiceImpl">
    <property name="userDao" ref="uDao"/>
    </bean>
    <bean id="LoginAction" class="com.mch.action.LoginAction">
    <property name="userService">
    <ref bean="uService"/>
    </property>
    </bean>
    </beans>还是空指针异常,不知为何,spring始终没有给对象实例化.
      

  9.   


    <?xml version="1.0" encoding="UTF-8"?>
    <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-2.5.xsd"
    default-autowire="byName" default-lazy-init="true"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
    <property name="url" value="jdbc:sqlserver://localhost:1434;database=shoppingDB"/>
    <property name="username" value="sa"/>
    <property name="password" value="123456"/>
    </bean>
    <bean id="MySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref bean="dataSource"/>
    </property>
    <property name="mappingResources">
    <value>com/mch/config/user.hbm.xml</value>
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.format_sql">true</prop>
    </props>
    </property>
    </bean>
    <bean id="uDao" class="com.mch.dao.impl.UserDaoImpl">
    <property name="sessionFactory" ref="MySessionFactory"/>
    </bean>
    <bean id="uService" class="com.mch.service.impl.UserServiceImpl">
    <property name="userDao" ref="uDao"/>
    </bean>
    <bean id="LoginAction" class="com.mch.action.LoginAction">
    <property name="userService">
    <ref bean="uService"/>
    </property>
    </bean>
    </beans>还是空指针异常,不知为何,spring始终没有给对象实例化.你的UserService  实例名不是叫users么?怎么这边配成了userService,把错误贴出来
      

  10.   


    <?xml version="1.0" encoding="UTF-8"?>
    <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-2.5.xsd"
    default-autowire="byName" default-lazy-init="true"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
    <property name="url" value="jdbc:sqlserver://localhost:1434;database=shoppingDB"/>
    <property name="username" value="sa"/>
    <property name="password" value="123456"/>
    </bean>
    <bean id="MySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref bean="dataSource"/>
    </property>
    <property name="mappingResources">
    <value>com/mch/config/user.hbm.xml</value>
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.format_sql">true</prop>
    </props>
    </property>
    </bean>
    <bean id="uDao" class="com.mch.dao.impl.UserDaoImpl">
    <property name="sessionFactory" ref="MySessionFactory"/>
    </bean>
    <bean id="uService" class="com.mch.service.impl.UserServiceImpl">
    <property name="userDao" ref="uDao"/>
    </bean>
    <bean id="LoginAction" class="com.mch.action.LoginAction">
    <property name="userService">
    <ref bean="uService"/>
    </property>
    </bean>
    </beans>还是空指针异常,不知为何,spring始终没有给对象实例化.你的UserService  实例名不是叫users么?怎么这边配成了userService,把错误贴出来
    我重新修改回来啦,免得你们看混了.哈哈
      

  11.   


    <?xml version="1.0" encoding="UTF-8"?>
    <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-2.5.xsd"
    default-autowire="byName" default-lazy-init="true"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
    <property name="url" value="jdbc:sqlserver://localhost:1434;database=shoppingDB"/>
    <property name="username" value="sa"/>
    <property name="password" value="123456"/>
    </bean>
    <bean id="MySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref bean="dataSource"/>
    </property>
    <property name="mappingResources">
    <value>com/mch/config/user.hbm.xml</value>
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.format_sql">true</prop>
    </props>
    </property>
    </bean>
    <bean id="uDao" class="com.mch.dao.impl.UserDaoImpl">
    <property name="sessionFactory" ref="MySessionFactory"/>
    </bean>
    <bean id="uService" class="com.mch.service.impl.UserServiceImpl">
    <property name="userDao" ref="uDao"/>
    </bean>
    <bean id="LoginAction" class="com.mch.action.LoginAction">
    <property name="userService">
    <ref bean="uService"/>
    </property>
    </bean>
    </beans>还是空指针异常,不知为何,spring始终没有给对象实例化.你的UserService  实例名不是叫users么?怎么这边配成了userService,把错误贴出来
    错误如下:
    java.lang.NullPointerException
    at com.mch.action.LoginAction.execute(LoginAction.java:18)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:589)
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450)
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:289)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:252)
    at org.apache.struts2.interceptor.DeprecationInterceptor.intercept(DeprecationInterceptor.java:41)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:249)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:249)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:139)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:562)
    at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
    at java.lang.Thread.run(Thread.java:619)
      

  12.   

    set方法的没有,struts的标签是通过set方法来注入值的
      

  13.   

    set方法是有的,就是不知道为何spring不实例化
      

  14.   

    刚才看了一下,原来你这个配置代码是直接从人家事例回复中直接复制的,就告诉你一点,依赖注入中的id名称必须和你代码中的实例名称一致,也就是说 <bean id="uService" class="com.mch.service.impl.UserServiceImpl">这个id名称也必须是userService,同样在action层引用配置中也必须都是userService,看来你的自学能力还是得加强,程序猿这行不好混,改行把小白。
      

  15.   

     <bean id="userService" class="com.mch.service.impl.UserServiceImpl">
    照你这么说,UserService只是个接口,而实现这个接口的是UserServiceImpl,那上面的id应该改成
    <bean id="userServiceImpl" class="com.mch.service.impl.UserServiceImpl">
      

  16.   

     <bean id="userService" class="com.mch.service.impl.UserServiceImpl">
    照你这么说,UserService只是个接口,而实现这个接口的是UserServiceImpl,那上面的id应该改成
    <bean id="userServiceImpl" class="com.mch.service.impl.UserServiceImpl">汗…… 你这java基础也太……,这个就跟写代码一样,
    UserService userService = new UserServiceImpl();
    UserService userService2 = new UserServiceImplDemo();
    这两个都可以,new的对象名称和后边的实现类有直接关系不? 
      

  17.   

    嗯,我的基础是很差.
    但是我也试过你说的那种写了,一样的空指针
    <?xml version="1.0" encoding="UTF-8"?>
    <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-2.5.xsd"
    default-autowire="byName" default-lazy-init="true"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
    <property name="url" value="jdbc:sqlserver://localhost:1434;database=shoppingDB"/>
    <property name="username" value="sa"/>
    <property name="password" value="123456"/>
    </bean>
    <bean id="MySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref bean="dataSource"/>
    </property>
    <property name="mappingResources">
    <value>com/mch/config/user.hbm.xml</value>
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.format_sql">true</prop>
    </props>
    </property>
    </bean>
    <bean id="UserDao" class="com.mch.dao.impl.UserDaoImpl">
    <property name="sessionFactory" ref="MySessionFactory"/>
    </bean>
    <bean id="UserService" class="com.mch.service.impl.UserServiceImpl">
    <property name="userDao">
    <ref bean="UserDao"/>
    </property>
    </bean>
    <bean id="LoginAction" class="com.mch.action.LoginAction">
    <property name="userService">
    <ref bean="UserService"/>
    </property>
    </bean>
    </beans>
      

  18.   

    <bean id="LoginAction" class="com.mch.action.LoginAction">
    <property name="userService">
    这里<property name="userService">叫做userService,那么你LoginAction也必须叫做userService,再有setUserService方法。
    而<ref bean="UserService"/>的UserService就对应上<bean id="UserService" class="com.mch.service.impl.UserServiceImpl">里的id就好了。
    建议你把名字取成一样,这也是一种代码习惯。别uService,又是users,出现多个名称自己容易出错,别人看你代码也不舒服~
    再问一句:你服务启动spring没有报错的吧!这是前提。
      

  19.   

    呃...说得我有点糊涂,<property name="userService">这里的userService不是LoginAction中声明的对象名称吗(有可能你说的我理解错了)?
    运行都正常,就是输入用户名、密码点击登录时,对象为空...
      

  20.   

    呃...说得我有点糊涂,<property name="userService">这里的userService不是LoginAction中声明的对象名称吗(有可能你说的我理解错了)?
    运行都正常,就是输入用户名、密码点击登录时,对象为空...
    是你理解的,我是提醒你要写成一样。你可以尝试在LoginAction中自己声明变量,即userService=new userServiceImpl();如果可以就是你spring配置的问题了额
      

  21.   

    users在application中配置对了吗,显然没有注入进去
      

  22.   

    你就不能老老实实的copy下人家的代码,看看能不能跑通,然后在理解的基础上再进行修改或者增加other action方法,再进行调试啊,什么的!
      

  23.   


    <?xml version="1.0" encoding="UTF-8"?>
    <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-2.5.xsd"
    default-autowire="byName" default-lazy-init="true"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
    <property name="url" value="jdbc:sqlserver://localhost:1434;database=shoppingDB"/>
    <property name="username" value="sa"/>
    <property name="password" value="123456"/>
    </bean>
    <bean id="MySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref bean="dataSource"/>
    </property>
    <property name="mappingResources">
    <value>com/mch/config/user.hbm.xml</value>
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.format_sql">true</prop>
    </props>
    </property>
    </bean>
    <bean id="uDao" class="com.mch.dao.impl.UserDaoImpl">
    <property name="sessionFactory" ref="MySessionFactory"/>
    </bean>
    <bean id="uService" class="com.mch.service.impl.UserServiceImpl">
    <property name="userDao" ref="uDao"/>
    </bean>
    <bean id="LoginAction" class="com.mch.action.LoginAction">
    <property name="userService">
    <ref bean="uService"/>
    </property>
    </bean>
    </beans>还是空指针异常,不知为何,spring始终没有给对象实例化.
    配置的是uService,程序中是users,所以注入不进去。
      

  24.   

    就是根据他的代码来弄的呀,users/userService这个都试过了,一样空指针,我才去修改applicationcontext.xml文件的
      

  25.   


    <?xml version="1.0" encoding="UTF-8"?>
    <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-2.5.xsd"
    default-autowire="byName" default-lazy-init="true"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
    <property name="url" value="jdbc:sqlserver://localhost:1434;database=shoppingDB"/>
    <property name="username" value="sa"/>
    <property name="password" value="123456"/>
    </bean>
    <bean id="MySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref bean="dataSource"/>
    </property>
    <property name="mappingResources">
    <value>com/mch/config/user.hbm.xml</value>
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.format_sql">true</prop>
    </props>
    </property>
    </bean>
    <bean id="uDao" class="com.mch.dao.impl.UserDaoImpl">
    <property name="sessionFactory" ref="MySessionFactory"/>
    </bean>
    <bean id="uService" class="com.mch.service.impl.UserServiceImpl">
    <property name="userDao" ref="uDao"/>
    </bean>
    <bean id="LoginAction" class="com.mch.action.LoginAction">
    <property name="userService">
    <ref bean="uService"/>
    </property>
    </bean>
    </beans>还是空指针异常,不知为何,spring始终没有给对象实例化.
    配置的是uService,程序中是users,所以注入不进去。
    呃...我把你给绕混了,现在我已经修改回来了.
    LoginAction中的对象叫 userService,配置文件中也使用userService了,但是还是空指针。
      

  26.   

    呃...说得我有点糊涂,<property name="userService">这里的userService不是LoginAction中声明的对象名称吗(有可能你说的我理解错了)?
    运行都正常,就是输入用户名、密码点击登录时,对象为空...
    是你理解的,我是提醒你要写成一样。你可以尝试在LoginAction中自己声明变量,即userService=new userServiceImpl();如果可以就是你spring配置的问题了额
    还是无效...哎。