Unable to instantiate Action, loginAction, defined for 'login' in namespace '/'
这是struts.xml<package name="ssh" extends="struts-default">
<action name="login" class="loginAction">
<result name="success">/result.jsp</result>
</action>
</package>
这是applicationContext.xml
<bean id="userDao" class="com.zb.ssh.dao.impl.UserDAOImpl" scope="singleton">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="userservice" class="com.zb.ssh.service.impl.UserServiceImpl">
<property name="userDao" ref="userDao"></property>
</bean>
<bean id="loginAction" class="com.zb.ssh.action.LoginAction" scope="prototype">
<property name="service" ref="userservice"></property>
</bean>
这是jsp页面
<s:form action="login" method="post">
<s:textfield name="account" label="用户名"></s:textfield><br>
<s:password name="password" label="密码"></s:password><br>
<s:submit></s:submit>
</s:form>
下面是错误信息
Unable to instantiate Action, loginAction, defined for 'login' in namespace '/'loginAction
com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:318)
com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:399)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:198)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:475)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
root cause
java.lang.ClassNotFoundException: loginAction
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:157)
com.opensymphony.xwork2.ObjectFactory.getClassInstance(ObjectFactory.java:107)
com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:223)
com.opensymphony.xwork2.spring.SpringObjectFactory.buildBean(SpringObjectFactory.java:143)
com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150)
com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:120)
com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:299)
com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:399)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:198)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:475)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
--------------------编程问答-------------------- 配一个 namespace ,然后在 form 表单的action 加上相应的 namespace 试试~ --------------------编程问答-------------------- <action name="login" class="loginAction">
改成<action name="/login" class="loginAction">
要是还不行,就加个namespace,试试 --------------------编程问答-------------------- 都试试了,还是不行,还有别的办法没有啊! --------------------编程问答-------------------- 好不容易把这个环境给搭好了,但是也出现了这个错误,我在想是不是web.xml里面有什么还没有配置好的.....
关注中~~ --------------------编程问答-------------------- 对啊,一定要注意在web.xml中将struts2引进,要不然什么都没有 --------------------编程问答-------------------- 我的问题解决了:
1、在web.xml里面我将下面的一些语句注释了:
<filter>
<filter-name>struts2</filter-name>
<filter class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<!-- <init-param>-->
<!-- <description>指定struts配置文件的位置</description>-->
<!-- <param-name>config</param-name>-->
<!-- <param-value>struts-default.xml, classpath:struts.xml</param-value>-->
<!-- </init-param>-->
</filter> --------------------编程问答-------------------- 2、你看看自己struts是怎么配置的,我在页面请求action的时候加上了xxx.action,后面加了action后缀。
你仔细看看,看对你有没有帮助。 --------------------编程问答-------------------- 我的问题还没有解决,你们谁能把你的程序发我一个,
我邮箱:zgbi12884@126.com --------------------编程问答-------------------- 不知道你struts2与spring2的插件包有没有加进来。还有,常量配置有没有配。 --------------------编程问答-------------------- 怀疑导包 配置有问题! --------------------编程问答-------------------- 我之前这样配没有问题,现在这样配就出错了,插件包也导了 --------------------编程问答-------------------- 你的<action name="login" class="***"> 这个要全名包括包路径,异常的意思就是说没有找个命名空间下的loginAction,你把action里的class配置改改,再试试 --------------------编程问答-------------------- 好不容易把这个环境给搭好了,但是也出现了这个错误,个人感觉应该是struts配置和spring配置之间存在的问题
关注中~~
希望楼主问题解决后 能将具体的解决方法贴出来。 --------------------编程问答-------------------- Struts 配置错误吧,<action name="user" class="UserAction"> --------------------编程问答-------------------- 如果是注解注入就加上:
<context:component-scan base-package="com.XX.*" /> --------------------编程问答-------------------- 你有没有在struts.xml中配置
<constant name="struts.objectFactory" value="spring"/> --------------------编程问答-------------------- 小弟也遇到此问题,不知哪位大虾解决了?
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
Unable to instantiate Action, loginAction, defined for 'login' in namespace '/'loginAction
com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:316)...
上面的错误是我修改了applicationcontext.xml文件之后粗线的异常。在没修改之前,程序报空指针异常。
哪位大虾解决,跟小弟指导下,感激不尽。 --------------------编程问答-------------------- 大神,你解决你的问题了吗?????求方法啊!
补充:Java , Java EE