做一个在线考试系统,采用Struts+Hibernate+Spring,运行时log4j出现这样的问题:
DelegatingActionProxy with mapping path '/adminLogin' and module prefix '' delegating to Spring bean with name [/adminLogin]
No action instance for path /adminLogin could be created
java.lang.NullPointerException
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1270)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
at org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:117)
at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:143)
at org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:280)
at org.springframework.web.struts.DelegatingRequestProcessor.processActionCreate(DelegatingRequestProcessor.java:150)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:218)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at com.exam.struts.action.base.MyActionServlet.process(MyActionServlet.java:15)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
搞了几天,自己估计是配置文件的问题,但不知问题出在哪?请教高手,不胜感激!
附上配置文件:
DelegatingActionProxy with mapping path '/adminLogin' and module prefix '' delegating to Spring bean with name [/adminLogin]
No action instance for path /adminLogin could be created
java.lang.NullPointerException
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1270)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
at org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:117)
at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:143)
at org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:280)
at org.springframework.web.struts.DelegatingRequestProcessor.processActionCreate(DelegatingRequestProcessor.java:150)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:218)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at com.exam.struts.action.base.MyActionServlet.process(MyActionServlet.java:15)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
搞了几天,自己估计是配置文件的问题,但不知问题出在哪?请教高手,不胜感激!
附上配置文件:
解决方案 »
- spring和iframe的问题
- 如何判断session是否过期,解决就给分,再线等
- 弱弱的问:xp下数据库连接问题,在线等
- 请问哪位达淫用jsp做过地图类型的图片放大缩小拖动等功能
- 在linux上drawString乱码
- 使用jspsmartupload下载的问题?
- struts2-jquery-plugin3.7 IE8下ajaxsubmit提交后台action为空值
- 如何能让一个界面只一段代码只执行一次,
- 从login.html到login.jsp不成功,看以下代码!请指教!
- 如何用JSP抓取IE浏览器地址栏中的全部地址
- 郁闷了!快搞不定了。。
- JSP 连接数据库 的字符串是什么 -- windows 身份验证
<struts-config>
<data-sources />
<form-beans >
<form-bean name="loginAdminForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="password" type="java.lang.String" />
<form-property name="name" type="java.lang.String" />
</form-bean>
<form-bean name="loginexamForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="stuname" type="java.lang.String"/>
<form-property name="stunumber" type="java.lang.String"/>
</form-bean>
<form-bean name="addStudentForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="id" type="java.lang.String"/>
<form-property name="realname" type="java.lang.String"/>
<form-property name="stuName" type="java.lang.String"/>
<form-property name="className" type="java.lang.String"/>
<form-property name="address" type="java.lang.String"/>
<form-property name="phone" type="java.lang.String"/>
<form-property name="email" type="java.lang.String"/>
<form-property name="humanId" type="java.lang.String"/>
</form-bean>
<form-bean name="addQuestionForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="title" type="java.lang.String"/>
<form-property name="examType" type="java.lang.String"/>
<form-property name="score" type="java.lang.String"/>
<form-property name="level" type="java.lang.String"/>
<form-property name="note" type="java.lang.String"/>
<form-property name="choices" type="java.lang.String"/>
<form-property name="standardAnswer" type="java.lang.String"/>
</form-bean>
<form-bean name="addTestForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="testName" type="java.lang.String"/>
<form-property name="testTime" type="java.lang.String"/>
</form-bean>
<form-bean name="studentLoginForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="stuNumber" type="java.lang.String" />
<form-property name="stuName" type="java.lang.String" />
</form-bean>
<form-bean name="replyFormForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="idr" type="java.lang.String" />
<form-property name="options" type="java.lang.String" />
</form-bean>
</form-beans> <global-exceptions>
<exception key="examException"
type="com.exam.exception.ExamException"
scope="request"
path="/WEB-INF/jsp/error.jsp">
</exception>
<exception key="otherException"
type="java.lang.Exception"
scope="request"
path="/WEB-INF/jsp/error.jsp">
</exception>
</global-exceptions>
<global-forwards>
<forward name="admin" path="/WEB-INF/jsp/login.jsp"></forward>
<forward name="loginExam" path="/WEB-INF/jsp/loginExam.jsp"></forward>
</global-forwards>
<action-mappings>
<!-- 进入后台管理的登录页面 -->
<action path="/admin" forward="/WEB-INF/jsp/login.jsp"></action>
<!-- 进入添加学生的表单页 -->
<action path="/addStudent" forward="/WEB-INF/jsp/addStudent.jsp"></action>
<!-- 进入添加考试类型的表单页 -->
<action path="/addTest" forward="/WEB-INF/jsp/addTest.jsp"></action>
<!-- 进入学生登录的表单页 -->
<action path="/login" forward="/WEB-INF/jsp/loginExam.jsp"></action>
<action path="/loginExam" forward="/WEB-INF/jsp/loginExam.jsp"></action>
<!-- 处理后台管理员登录 -->
<action
path="/adminLogin"
name="loginAdminForm"
validate="false"
scope="request">
<forward name="success" path="/WEB-INF/jsp/addStudent.jsp"></forward>
<forward name="failure" path="/WEB-INF/jsp/login.jsp"></forward>
</action>
<!-- 处理添加学生 -->
<action
validate="false"
name="addStudentForm"
path="/processAddStudent"
scope="request">
<forward name="success" path="/listStudent.do"></forward>
</action>
<!-- 处理列出学生 -->
<action
validate="false"
path="/listStudent"
scope="request">
<forward name="success" path="/WEB-INF/jsp/listStudent.jsp"></forward>
</action>
<!-- 处理删除学生 -->
<action
path="/delStudent"
scope="request"
validate="false">
<forward name="success" path="/listStudent.do"></forward>
</action>
<!-- 处理添加考试类型 -->
<action
validate="false"
name="addTestForm"
path="/processAddTest"
scope="request">
<forward name="success" path="/addQuestion.do"></forward>
</action>
<!-- 进入添加试题的表单页 -->
<action
path="/addQuestion"
scope="request"
validate="false">
<forward name="success" path="/WEB-INF/jsp/addQuestion.jsp"></forward>
</action>
<!-- 列出所有试题 -->
<action
validate="false"
scope="request"
path="/listQuestion">
<forward name="success" path="/WEB-INF/jsp/listQuestion.jsp"></forward>
</action>
<!-- 处理删除试题 -->
<action
validate="false"
scope="request"
path="/delQuestion">
<forward name="success" path="/listQuestion.do"></forward>
</action>
<!-- 处理添加试题 -->
<action
validate="false"
scope="request"
name="addQuestionForm"
path="/processAddQuestion">
<forward name="success" path="/listQuestion.do"></forward>
</action>
<!-- 处理考生登录 -->
<action
validate="false"
name="studentLoginForm"
path="/processLogin"
scope="request">
<forward name="success" path="/prepare.do"></forward>
<forward name="failure" path="/WEB-INF/jsp/loginExam.jsp"></forward>
</action>
<!-- 处理考生预备 -->
<action
scope="request"
path="/prepare">
<forward name="success" path="/WEB-INF/jsp/prepare.jsp"></forward>
</action>
<!-- 处理考生开始考试 -->
<action
scope="request"
path="/begin">
<forward name="success" path="/WEB-INF/jsp/examMain.jsp"></forward>
</action>
<!-- 处理考生答题 -->
<action
validate="false"
scope="request"
name="replyForm"
path="/reply">
<forward name="success" path="/WEB-INF/jsp/examMain.jsp"></forward>
<forward name="finish" path="/finish.do"></forward>
</action>
<!-- 统计考试结果 -->
<action
scope="request"
path="/finish">
<forward name="success" path="/WEB-INF/jsp/show.jsp"></forward>
</action>
</action-mappings> <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>
<message-resources parameter="message"/>
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/classes/actionContext.xml,/WEB-INF/classes/appContext.xml,/WEB-INF/classes/daoContext.xml" />
<!--
<set-property property="contextConfigLocation"
value="/WEB-INF/classes/applicationContext.xml" />-->
</plug-in> <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
<set-property property="stopOnFirstError" value="true" />
</plug-in>
</struts-config>
<bean name="daoTemplate" abstract="true">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 配置考试系统管理员DAO,通过指定parent属性来继承daoTemplate -->
<bean name="examUserDao" class="com.exam.impl.ExamUserDaoHibernate" parent="daoTemplate"></bean>
<bean name="examTypeDao" class="com.exam.impl.ExamTypeDaoHibernate" parent="daoTemplate"></bean>
<bean name="studentDao" class="com.exam.impl.StudentDaoHibernate" parent="daoTemplate"></bean>
<bean name="questionDao" class="com.exam.impl.QuestionDaoHibernate" parent="daoTemplate"></bean>
actionContext.xml文件
<bean name="actionTemplate" abstract="true">
<property name="examService" ref="examService"></property>
</bean>
<!-- 处理管理员登录 -->
<bean name="/amdinLogin" class="com.exam.struts.action.AdminLoginAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 处理添加学生 -->
<bean name="/processAddStudent" class="com.exam.struts.action.AddStudentAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 处理列出学生 -->
<bean name="/listStudnet" class="com.exam.struts.action.ListStudentAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 处理删除学生 -->
<bean name="/delStudent" class="com.exam.struts.action.DelStudentAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 处理添加考试类型 -->
<bean name="/processAddTest" class="com.exam.struts.action.AddTestAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 进入添加试题的表单页 -->
<bean name="/addQuestion" class="com.exam.struts.action.BeforeAddQuestionAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 处理列出问题 -->
<bean name="/listQuestion" class="com.exam.struts.action.ListQuestionAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 处理删除试题 -->
<bean name="/delQuestion" class="com.exam.struts.action.DelQuestionAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 处理添加试题 -->
<bean name="/processAddQuestion" class="com.exam.struts.action.AddQuestionAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 处理学生登录 -->
<bean name="/processLogin" class="com.exam.struts.action.StudentLoginAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 学生准备考试 -->
<bean name="/prepare" class="com.exam.struts.action.BeginAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 学生答题 -->
<bean name="/reply" class="com.exam.struts.action.ReplyAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 考试结束 -->
<bean name="/finish" class="com.exam.struts.action.FinishAction" scope="prototype" parent="actionTemplate"></bean>
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>/processAddStudent</value>
<value>/listStudent</value>
<value>/delStudent</value>
<value>/processAddTestt</value>
<value>/listQuestion</value>
<value>/delQuestion</value>
<value>/addQuestion</value>
<value>/processAddQuestion</value><!-- 不同原 -->
</list>
</property>
<property name="interceptorNames">
<list>
<value>authorityInterceptor</value>
</list>
</property>
</bean>
<bean id="authorityInterceptor" class="com.exam.authority.AuthorityInterceptor"/>
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>/reply</value>
<value>/finish</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>examInterceptor</value>
</list>
</property>
</bean>
<bean id="examInterceptor" class="com.exam.authority.ExamInterceptor"></bean>
<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-2.0.xsd">
<!-- 定义数据源Bean,使用C3P0数据源实现 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/onlinexam"></property>
<property name="user" value="root"></property>
<property name="password" value="329435123"></property>
<property name="maxPoolSize" value="40"></property>
<property name="minPoolSize" value="1"></property>
<property name="initialPoolSize" value="1"></property>
<property name="maxIdleTime" value="20"></property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.jdbc.batch_size">20</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/exam/model/ExamUser.hbm.xml</value>
<value>com/exam/model/ExamType.hbm.xml</value>
<value>com/exam/model/Question.hbm.xml</value>
<value>com/exam/model/Student.hbm.xml</value>
</list>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean需要依赖注入一个事务管理器 -->
<property name="transactionManager" ref="transactionManager"></property>
<property name="transactionAttributes">
<!-- 下面定义事务传播属性 -->
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- 定义业务逻辑处理组件 -->
<bean id="examService" class="com.exam.service.impl.ExamServiceImpl">
<property name="examUserDao" ref="examUserDao"></property>
<property name="examTypeDao" ref="examTypeDao"></property>
<property name="studentDao" ref="studentDao"></property>
<property name="questionDao" ref="questionDao"></property>
</bean> <!-- 定义BeanNameAutoProxyCreator -->
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<!-- 指定对满足哪些Bean name的Bean自动生成业务代理 -->
<property name="beanNames">
<!-- 下面是所有需要自动创建事务代理的Bean-->
<list>
<value>examService</value>
</list>
<!-- 此处可增加其他需要自动创建事务代理的Bean-->
</property>
<!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
<!-- 此处可增加其他新的Interceptor -->
</list>
</property>
</bean>
</beans>
scope="request"
path="/prepare">
<forward name="success" path="/WEB-INF/jsp/prepare.jsp"> </forward>
</action> 你ACTION里所有的spring 委托代理接口呢>
No action instance for path /adminLogin could be created struts 的/adminLogin 和 Spring 的/adminLogin,
没有action /adminLogin被创建 ,你看看struts的配置:
<!-- 处理后台管理员登录 -->
<action
path="/adminLogin"
name="loginAdminForm"
validate="false"
scope="request">
<forward name="success" path="/WEB-INF/jsp/addStudent.jsp"> </forward>
<forward name="failure" path="/WEB-INF/jsp/login.jsp"> </forward>
</action>
里面的class属性呢?这当然不行了,你class都没有,怎么找得到啊
<action
path="/adminLogin" *****************************
<!--加上:-->
class="org.spring....."
*****************************
name="loginAdminForm"
validate="false"
scope="request">
<forward name="success" path="/WEB-INF/jsp/addStudent.jsp"> </forward>
<forward name="failure" path="/WEB-INF/jsp/login.jsp"> </forward>
</action>
No action instance for path /adminLogin could be created
java.lang.NullPointerException
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source) 兄弟,上面错误提示中说的很清楚了<action
path="/adminLogin"
name="loginAdminForm"
validate="false"
scope="request">
<forward name="success" path="/WEB-INF/jsp/addStudent.jsp"> </forward>
<forward name="failure" path="/WEB-INF/jsp/login.jsp"> </forward>
</action> 你的class属性没指定,应该指明他的具体的action类的路径这样就可以了
<!-- 处理管理员登录 -->
<bean name="/amdinLogin" class="com.exam.struts.action.AdminLoginAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 处理添加学生 -->
<bean name="/processAddStudent" class="com.exam.struts.action.AddStudentAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 处理列出学生 -->
<bean name="/listStudnet" class="com.exam.struts.action.ListStudentAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 处理删除学生 -->
<bean name="/delStudent" class="com.exam.struts.action.DelStudentAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 处理添加考试类型 -->
<bean name="/processAddTest" class="com.exam.struts.action.AddTestAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 进入添加试题的表单页 -->
<bean name="/addQuestion" class="com.exam.struts.action.BeforeAddQuestionAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 处理列出问题 -->
<bean name="/listQuestion" class="com.exam.struts.action.ListQuestionAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 处理删除试题 -->
<bean name="/delQuestion" class="com.exam.struts.action.DelQuestionAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 处理添加试题 -->
<bean name="/processAddQuestion" class="com.exam.struts.action.AddQuestionAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 处理学生登录 -->
<bean name="/processLogin" class="com.exam.struts.action.StudentLoginAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 学生准备考试 -->
<bean name="/prepare" class="com.exam.struts.action.BeginAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 学生答题 -->
<bean name="/reply" class="com.exam.struts.action.ReplyAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 考试结束 -->
<bean name="/finish" class="com.exam.struts.action.FinishAction" scope="prototype" parent="actionTemplate"> </bean>
难道这样写是不行的?
但在struts里没告诉他ACTION 的 TYPE
一般来说是
type="org.springframework.web.struts.DelegatingActionProxy"
这样SPRING容器启动时才会帮你创建这个ACTION
No bean named '/adminLogin' found in org.springframework.beans.factory.support.DefaultListableBeanFactory@1cc5d23: defining beans [actionTemplate,/amdinLogin,/processAddStudent,/listStudnet,/delStudent,/processAddTest,/addQuestion,/listQuestion,/delQuestion,/processAddQuestion,/processLogin,/prepare,/reply,/finish,org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator,authorityInterceptor,org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator#1,examInterceptor,dataSource,sessionFactory,transactionManager,transactionInterceptor,examService,org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator#2,daoTemplate,examUserDao,examTypeDao,studentDao,questionDao]; root of factory hierarchy
我竟然在
<!-- 处理管理员登录 -->
<bean name="/amdinLogin" class="com.exam.struts.action.AdminLoginAction" scope="prototype" parent="actionTemplate"> </bean>
这里 adminLogin写成了amdinLogin,真的很粗心啊,
真的很晕...这样都没有发现!真想撞墙死.....
想想:一开始我想法都错了,因为开始时出现一个配置文件的错误,我即时修改,然后又想当然认为是配置文件的错误,狂看spring文档致浪费不少时间!谢谢各位帮助!