当前位置:编程学习 > JAVA >>

spring注入报空指针

<bean id="userServiceImpl" class="com.gy.service.UserServiceImpl"
abstract="false" lazy-init="default" autowire="default">
</bean>
<bean id="loginAction" class="com.gy.action.LoginAction"
abstract="false" lazy-init="default" autowire="default">
<property name="userService">
<ref bean="userServiceImpl" />
</property>
</bean></beans>
public class LoginAction extends ActionSupport {
private String username; // 用户名
private String password; // 密码
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
}
public String execute() throws Exception {
if (userService.login(username, password)) { // 判断是否登录
return "success"; // 返回成功字符串
} else {
return "fail"; // 返回失败字符串
}
}
java.lang.NullPointerException
com.gy.action.LoginAction.execute(LoginAction.java:32)

省略部分测试代码,应该是spring注入问题,控制台直接读application.xml可以注入,但发布到tomcat userService就成空指针出错 ,请高手赐教!
--------------------编程问答-------------------- web.xml配置了没有? --------------------编程问答-------------------- 你这个是登录,是struts里面的东西。凡是形如:
public void setUserService(UserService userService) {
this.userService = userService;
}都是要从页面获取的信息。跟spring没有关系。 --------------------编程问答--------------------
引用 2 楼 cs36241189 的回复:
你这个是登录,是struts里面的东西。凡是形如:
public void setUserService(UserService userService) {
this.userService = userService;
}都是要从页面获取的信息。跟spring没有关系。

他是调用userService.login空指针,你说有关系吗? --------------------编程问答-------------------- 感觉就是逻辑有问题,当程序跑到execute()这个方法的时候,根本就还没有登录成功吗。怎么在这儿判断啊。当return之后struts还要返回一个视图。这样才算登录成功。 --------------------编程问答-------------------- 晕,就是因为userService spring没注入才会出现null的,和业务逻辑无关
还有web.xml绝对没问题的,写成java applicatin测试程序通过getbean能得到注入,web发布后就出现空指针了 --------------------编程问答-------------------- web.xml拿出来晒晒 --------------------编程问答-------------------- 声明的属性做set和get了吗
还有最好把你的错误报告拿出来 --------------------编程问答--------------------     有这种情况,你拿的不是注入的 而是NEW的, 所以一直为空 --------------------编程问答-------------------- 很明显说明你action没有交给spring管理,也就是说你访问的不是spring容器里面的action,如果我没猜错的话,绝对是你struts.xml里面配置错误 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- debug  `` --------------------编程问答--------------------
引用 9 楼 javawebcza 的回复:
很明显说明你action没有交给spring管理,也就是说你访问的不是spring容器里面的action,如果我没猜错的话,绝对是你struts.xml里面配置错误

我也觉得你确实Action没有交给Spring管理,可以的话把web.XML贴出来一下
--------------------编程问答-------------------- 肯定是userService没注入啦 --------------------编程问答-------------------- username和password写get set方法没?两者的getset方法必须有   从页面得到值的
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,