Code Bye

哪位大神能帮我看看下面的错误

HTTP Status 500 – Invalid action class configuration that references an unknown class named [logaction]

type Exception report

message Invalid action class configuration that references an unknown class named [logaction]

description The server encountered an internal error that prevented it from fulfilling this request.

exception 

java.lang.RuntimeException: Invalid action class configuration that references an unknown class named [logaction]
org.apache.struts2.convention.ConventionsServiceImpl.determineResultPath(ConventionsServiceImpl.java:100)
org.apache.struts2.convention.ConventionUnknownHandler.determinePath(ConventionUnknownHandler.java:385)
org.apache.struts2.convention.ConventionUnknownHandler.handleUnknownResult(ConventionUnknownHandler.java:274)
com.opensymphony.xwork2.DefaultUnknownHandlerManager.handleUnknownResult(DefaultUnknownHandlerManager.java:76)
com.opensymphony.xwork2.DefaultActionInvocation.createResult(DefaultActionInvocation.java:215)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:356)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)

root cause 

首先logaction这类有,struts.xml和app.xml的配置也对,登陆和注册访问它时正确,退出和修改访问时就出错。请大神指点

你访问的action 并不是 logaction ,可能你的action 重复写了。
10分
翻译过来就是
无效的动作类的配置,引用了一个命名为“logaction”的未知类
楼主能不能设一个断点或者设计log看看到底哪一个环节出的问题?
引用 1 楼 zhuchao_ko 的回复:

你访问的action 并不是 logaction ,可能你的action 重复写了。

我访问的action是logaction啊,你说的重写是什么意思

引用 2 楼 AA5279AA 的回复:

翻译过来就是
无效的动作类的配置,引用了一个命名为“logaction”的未知类
楼主能不能设一个断点或者设计log看看到底哪一个环节出
的问题?

貌似不会设断点,因为登陆时访问的路径action=”${syspath}/app/logact_login”而注销时访问的路径是 ${syspath}/app/logact_logout,前面登陆成功了,这说明已经访问到logaction了,而后面注销就会出现上述错误,但myeclipse并没有报出异常

引用 3 楼 fengzheku 的回复:
Quote: 引用 1 楼 zhuchao_ko 的回复:

你访问的action 并不是 logaction ,可能你的action 重复写了。

我访问的action是logaction啊,你说的重写是什么意思

不是 重写 是重复 你看看你的action 名字 在你的配置文件里 出现了几次?
action 所在的包名 是否也有重复?

引用 5 楼 zhuchao_ko 的回复:
Quote: 引用 3 楼 fengzheku 的回复:
Quote: 引用 1 楼 zhuchao_ko 的回复:

你访问的action 并不是 logaction ,可能你的action 重复写了。

我访问的action是logaction啊,你说的重写是什么意思

不是 重写 是重复 你看看你的action 名字 在你的配置文件里 出现了几次?
action 所在的包名 是否也有重复?

哦已看,没有重复,代码如下:

<action name="logact_*" class="logaction" method="{1}">
			<result name="ok" type="redirect">/login.jsp?log=${log}</result>
			<result name="regist" type="redirect">/index.jsp</result>
			<result name="logout" >/index.jsp</result>
			<result name="update" >/information.jsp</result>
		</action>
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

	<constant name="objectFactory" value="spring"></constant>



	<package name="sys" extends="struts-default" abstract="true">
		<global-results>
			<result type="redirect" name="index">/index.jsp</result>
			<result  name="error">/error.jsp</result>
		</global-results>
	</package>

	<package name="app" extends="sys" namespace="/app">

		<action name="logact_*" class="logaction" method="{1}">
			<result name="ok" type="redirect">/login.jsp?log=${log}</result>
			<result name="regist" type="redirect">/index.jsp</result>
			<result name="logout" >/index.jsp</result>
			<result name="update" >/information.jsp</result>
		</action>

		<action name="orderact_*" class="orderAction" method="{1}">
		    <!--redirect 重定向 会丢失请求参数 dispatcher 是forword转发  -->
		    <result name="index" type="redirect">/index.jsp</result>
		</action>
		<action name="caract_*" class="CarAction" method="{1}">
		    <!--redirect 重定向 会丢失请求参数 dispatcher 是forword转发  -->
		    <result name="index" type="redirect">/index.jsp</result>
		</action>

		<action name="foodtypeact_*" class="foodtypeaction" method="{1}">
		</action>
	</package>
	<package name="food" namespace="/food" extends="json-default">
        <action name="foodAction_*" class="foodAction" method="{1}">
            <result type="json">
            	<param name="noCache">true</param>  
           		<param name="ignoreHierarchy">false</param>
            </result> 
        </action>
        <action name="foodtypeact_*" class="foodtypeaction" method="{1}">
		    <result type="json">
            	<param name="noCache">true</param>  
           		<param name="ignoreHierarchy">false</param>
            </result> 
		</action>
 
     </package>
</struts>    
配置文件出错了,不认识这个类,发下配置文件吧。
java.lang.RuntimeException: Invalid action class configuration that references an unknown class named [logaction]
20分
引用 6 楼 fengzheku 的回复:
Quote: 引用 5 楼 zhuchao_ko 的回复:
Quote: 引用 3 楼 fengzheku 的回复:
Quote: 引用 1 楼 zhuchao_ko 的回复:

你访问的action 并不是 logaction ,可能你的action 重复写了。

我访问的action是logaction啊,你说的重写是什么意思

不是 重写 是重复 你看看你的action 名字 在你的配置文件里 出现了几次?
action 所在的包名 是否也有重复?

哦已看,没有重复,代码如下:

<action name="logact_*" class="logaction" method="{1}">
			<result name="ok" type="redirect">/login.jsp?log=${log}</result>
			<result name="regist" type="redirect">/index.jsp</result>
			<result name="logout" >/index.jsp</result>
			<result name="update" >/information.jsp</result>
		</action>

我知道了,你不能把logaction直接放在src下 你建个包 把这个类丢里面。

application.xml
<?xml version="1.0" encoding="UTF-8"?>
<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.5.xsd">


	<bean id="c3p0dts" class="com.mchange.v2.c3p0.ComboPooledDataSource" >
		<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
		<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/fastfood?useUnicode\=true&amp;characterEncoding=UTF-8"></property>
		<property name="user" value="root"></property>
		<property name="password" value=""></property>
		<property name="maxPoolSize" value="100"></property>
		<property name="minPoolSize" value="20"></property>
		<property name="maxIdleTime" value="20000"></property>

	</bean>


	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="c3p0dts"></property>
		<property name="mappingResources">
			<list>
			    <value>com/qrsx/bean/Userinfo.hbm.xml</value>
				<value>com/qrsx/bean/Province.hbm.xml</value>
				<value>com/qrsx/bean/City.hbm.xml</value>
				<value>com/qrsx/bean/Foodtype.hbm.xml</value>
				<value>com/qrsx/bean/Foodinfo.hbm.xml</value>
				<value>com/qrsx/bean/Foodcar.hbm.xml</value>
				<value>com/qrsx/bean/Orderinfo.hbm.xml</value>
				<value>com/qrsx/bean/Userlevel.hbm.xml</value>
			</list>
		</property>
	</bean>

		  <!-- 实例化manager -->
	<bean id="foodmanager" class="com.qrsx.model.FoodManager">
	      <property name="mp">
	          <map>
	              <entry key="1" value-ref="fooddao"></entry>
	              <entry key="2" value-ref="userinfodao"></entry>
	               <entry key="3" value-ref="orderdao"></entry>
	              <entry key="4" value-ref="foodcardao"></entry>
	              <entry key="5" value-ref="provincedao"></entry>
	              <entry key="6" value-ref="citydao"></entry>
	              <entry key="7" value-ref="foodtypedao"></entry>
	          </map>
	      </property>
	</bean>


	<bean id="sysdao" abstract="true">
	     <property name="sef" ref="sessionFactory"></property>
	</bean>
	<bean id="userinfodao" class="com.qrsx.dao.UserinfoDAO" parent="sysdao"></bean>
	<bean id="provincedao" class="com.qrsx.dao.ProvinceDAO" parent="sysdao"></bean>
	<bean id="citydao" class="com.qrsx.dao.CityDAO" parent="sysdao"></bean>
	<bean id="foodtypedao" class="com.qrsx.dao.FoodTypeDAO" parent="sysdao"></bean>
    <bean id="fooddao" class="com.qrsx.dao.FoodDAO" parent="sysdao"></bean>
    <bean id="foodcardao" class="com.qrsx.dao.FoodCarDAO" parent="sysdao"></bean>
     <bean id="orderdao" class="com.qrsx.dao.OrderDAO" parent="sysdao"></bean>
    <bean id="vhelper" class="com.qrsx.view.ViewHelper" scope="session">
	     <property name="manager" ref="foodmanager"></property>
	</bean>

	    <!-- 由于设置bean定义中设置了abstract="true",因此它不能被容器实例化,只是在此起了模板的作用,供其他bean继承 -->
	<bean id="appactionsupport" class="com.qrsx.action.AppActionSupport" abstract="true" >
		<property name="manager" ref="foodmanager"></property>
	</bean>
	<bean id="logaction" class="com.qrsx.action.LogAction" scope="prototype" parent="appactionsupport"></bean>
	<bean id="orderAction" class="com.qrsx.action.orderAction" scope="prototype" parent="appactionsupport"></bean>
	<bean id="CarAction" class="com.qrsx.action.CarAction" scope="prototype" parent="appactionsupport"></bean>
	<bean id="foodtypeaction" class="com.qrsx.action.FoodTypeAction" scope="prototype" parent="appactionsupport"></bean>
	<bean id="foodAction" class="com.qrsx.action.FoodAction" scope="prototype" parent="appactionsupport"></bean>
</beans>
引用 9 楼 zhuchao_ko 的回复:
Quote: 引用 6 楼 fengzheku 的回复:
Quote: 引用 5 楼 zhuchao_ko 的回复:
Quote: 引用 3 楼 fengzheku 的回复:
Quote: 引用 1 楼 zhuchao_ko 的回复:

你访问的action 并不是 logaction ,可能你的action 重复写了。

我访问的action是logaction啊,你说的重写是什么意思

不是 重写 是重复 你看看你的action 名字 在你的配置文件里 出现了几次?
action 所在的包名 是否也有重复?

哦已看,没有重复,代码如下:

<action name="logact_*" class="logaction" method="{1}">
			<result name="ok" type="redirect">/login.jsp?log=${log}</result>
			<result name="regist" type="redirect">/index.jsp</result>
			<result name="logout" >/index.jsp</result>
			<result name="update" >/information.jsp</result>
		</action>

我知道了,你不能把logaction直接放在src下 你建个包 把这个类丢里面。

这个是在spring得管理下配置的,LogAction有自己的包

引用 8 楼 zhuweisyyc 的回复:

配置文件出错了,不认识这个类,发下配置文件吧。
java.lang.RuntimeException: Invalid action class configuration that references an unknown class named [logaction]

配置文件已发


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明哪位大神能帮我看看下面的错误