Java 没有为命名空间/和操作名称映射的操作

Java 没有为命名空间/和操作名称映射的操作,java,struts2,Java,Struts2,目前我在一个Live struts2项目中工作。这个项目运作良好。但有时,我会有一些意想不到的行为 举个例子,我正在测试这个项目,一切正常。突然,我重复了同样的操作,得到了以下错误 Struts Problem Report Struts has detected an unhandled exception: Messages: There is no Action mapped for namespace / and action name rfq. Stacktraces There is

目前我在一个Live struts2项目中工作。这个项目运作良好。但有时,我会有一些意想不到的行为

举个例子,我正在测试这个项目,一切正常。突然,我重复了同样的操作,得到了以下错误

Struts Problem Report Struts has detected an unhandled exception: Messages: There is no Action mapped for namespace / and action name rfq. Stacktraces There is no Action mapped for namespace / and action name rfq. - [unknown location] com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:189) 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:488) org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) java.lang.Thread.run(Unknown Source) You are seeing this page because development mode is enabled. Development mode, or devMode, enables extra debugging behaviors and reports to assist developers. To disable this mode, set: struts.devMode=false in your WEB-INF/classes/struts.properties file.
我用同样的操作再次测试,效果很好

我对这个问题进行了研究,但解决方案是针对频繁出现的错误,但这种错误很少出现,而且出人意料

有人面对过这样的问题并解决了吗

注:很抱歉,由于时间不够,我无法分享项目结构。任何帮助都将受到感谢

以下行动是负责的

<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<constant name="struts.devMode" value="true"/>
<constant name="struts.custom.i18n.resources" value="ApplicationResources"/>
<!--<constant name="struts.action.excludePattern" value="/CommonsFileUploadServlet" />-->
<!--<constant name="struts.multipart.handler" value="jakarta" />-->
<constant name="struts.multipart.maxSize" value="100000000"/>
<!--<constant name="struts.multipart.saveDir" value="D:/tmp" />-->

<!--<package name="com/deloitte/in/action" extends="struts-default"> -->
<!--<package name="mbe/iproc/action" extends="json-default">-->
<package name="default" namespace="/" extends="struts-default,json-default">


    <interceptors>
        <interceptor name="SessionCheckInterceptor"
                     class="mbe.iproc.interceptor.SessionCheckInterceptor"/>
        <interceptor-stack name="testSessionValidationStack">
            <interceptor-ref name="SessionCheckInterceptor" />
            <interceptor-ref name="defaultStack" />
        </interceptor-stack>

        <interceptor name="MyFile"
                     class="mbe.iproc.interceptor.MyFileInterceptor">


        </interceptor>

        <interceptor-stack name="fileUploadStack">
            <interceptor-ref name="MyFile" />
            <interceptor-ref name="basicStack" />
            <interceptor-ref name="i18n" />
        </interceptor-stack>

    </interceptors>



    <!--<default-interceptor-ref name="loggedInDefaultStack" />-->

    <global-results>
        <result name="error">/error.jsp</result>
        <result name="sessionexpired">/sessionExpiredIntermediate.jsp</result>
    </global-results>

    <global-exception-mappings>
        <exception-mapping
                exception="org.apache.struts.register.exceptions.SecurityBreachException"
                result="securityerror"/>
        <exception-mapping exception="java.lang.Exception"
                           result="error"/>
    </global-exception-mappings>




<action name="LOGIN" class="loginAction">
        <result name="success" type="redirect">POOUST</result>
        <result name="failure">/login.jsp</result>
        <result name="firstentry">/change_password.jsp</result>
    </action>


<action name="POOUST" method="poOustList" class="poOustAction">
        <interceptor-ref name="testSessionValidationStack"/>
        <result name="success">/home.jsp</result>
        <result name="superLoginSuccess">/homeAdmin.jsp</result>
        <result name="scmLoginSuccess">/homeScm.jsp</result>
        <result name="qaSuperLoginSuccess">/homeQA.jsp</result>
        <result name="inspLoginSuccess">/homeQA.jsp</result>
        <result name="failure">/home.jsp</result>
    </action>

/error.jsp
/sessionExpiredIntermediate.jsp
普奥斯特
/login.jsp
/更改密码.jsp
/home.jsp
/homeAdmin.jsp
/homeScm.jsp
/homeQA.jsp
/homeQA.jsp
/home.jsp

您可以发布struts.xml文件吗?尝试了很多次,但是struts.xml的缩进是错误的,它包含了500多个操作。请发布您正在执行struts.xml的映射代码,并提供您正在调用的操作。在做了一些会导致容器重新加载应用程序的更改后,您是否遇到错误?否则,我看到的唯一一件事是,可能是devMode=true导致了这种情况。您当前使用的Struts2版本是什么?发生这种问题的原因是未映射的操作。您可能在struts表单的某个地方编写了任何操作,但忘记在struts.xml映射文件中映射该操作。因此,最好仔细查看并映射您正在使用的所有操作。