开发者社区> 问答> 正文

Spring注入的bean 为什么为空 400 请求报错 

Spring配置文件

<bean id="loginService" class="com.testPlatform.service.LoginService"> <property name="userDao" ref="userDaoImp"/> </bean>

<bean id="loginAction" class="com.testPlatform.action.LoginAction" scope="prototype"> <property name="loginService" ref="loginService"/> </bean>

Struts配置文件

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">

<struts>
	<constant name = "struts.i18n.encoding" value="UTF-8"/>
		
	<package name ="login" extends="struts-default">       
		<action name="login" class="com.testPlatform.action.LoginAction" method="loginValidate">
			<result name="error">/resource/login.jsp</result>
			<result name="success">/resource/main.jsp</result>
		</action>
	</package>
</struts>

代码:

package com.testPlatform.action;

import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.testPlatform.domain.User; import com.testPlatform.service.LoginService;

public class LoginAction {

private LoginService loginService;

private Integer rtxID; private String password;

public String loginValidate() { User user = loginService.loginValidate(rtxID, password); if( null == user ) { return "error"; }

HttpServletRequest request = ServletActionContext.getRequest(); request.getSession().setAttribute("sessionuserinfo", user);

return "success"; }

public LoginService getLoginService() {

return loginService; } public void setLoginService(LoginService loginService) { System.out.println("LoginService setter---------------------------"); this.loginService = loginService; } }

每次页面发起请求 来到函数loginValidate()时,发现loginService的值为null,不知道为什么 我在LoginService类的构造函数中 增加了日志打印,tomcat启动的时候,出现了相应的日志,说明LoginService的构造函数已经被执行了,但为什么页面发起请求的时候LoginAction 的成员loginService的值为null?

HTTP Status 500 -


type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception
java.lang.NullPointerException
	com.testPlatform.action.LoginAction.loginValidate(LoginAction.java:19)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
以下是截取的 tomcat启动日志 信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@7c4f8358: defining beans [dataSource,sessionFactory,transactionManager,daoTemplate,userDaoImp,loginService,loginAction]; root of factory hierarchy 2015-3-20 14:22:31 org.springframework.orm.hibernate3.HibernateTransactionManager afterPropertiesSet 信息: Using DataSource [org.apache.commons.dbcp.BasicDataSource@7b3cb2c6] of Hibernate SessionFactory for HibernateTransactionManager UserDaoImp construct--------------------------- LoginService construct--------------------------- setUserDao setter--------------------------- LoginService setter---------------------------

展开
收起
kun坤 2020-06-01 09:33:17 495 0
1 条回答
写回答
取消 提交回答
  • struts2和spring需要一个插件来IOC###### struts配置呢 ######<bean id="loginService" class="com.testPlatform.service.LoginService">

    com.testPlatform.service.LoginServiceImpl Bean指定的应该是实现类LoginServiceImpl ,不是接口

    ######

    引用来自“拉登他哥”的评论

    struts配置呢 已经呈上######struts new一个action,spring又new一个action,你说该不该为null呢?######

    引用来自“泥沙砖瓦浆木匠”的评论

    <bean id="loginService" class="com.testPlatform.service.LoginService"> com.testPlatform.service.LoginServiceImpl Bean指定的应该是实现类LoginServiceImpl ,不是接口 我的service里面 没有搞接口,LoginService就是实现类。######<action name="login" class="com.testPlatform.action.LoginAction" clss引用spring配置的 loginAction###### @zzbutcher  struts 配置应该是这样的,class使用 spring 容器中已经实例化的bean <actionname="login"class="loginAction"method="loginValidate"> ######

    引用来自“无忌”的评论

    @zzbutcher  struts 配置应该是这样的,class使用 spring 容器中已经实例化的bean <actionname="login"class="loginAction"method="loginValidate"> 直接这样配,tomcat启动的时候 会报错 找不到这个类噢。 是不是还要搞一些别的东西。 ######楼主在webl.xml中添加了Spring的监听吗?######首先检查是否缺少spring-struts的一个jar包,用来集成二者的。其次web.xml,然后检查struts.xml 或者property。
    2020-06-01 09:46:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多