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

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,