郁闷死了,为什么我所有的action都抱着个异常?无语 java.lang.NoSuchMethodException: $Proxy20.searchPlacePos() 
java.lang.Class.getMethod(Class.java:1605) 
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.getActionMethod(AnnotationValidationInterceptor.java:75) 
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:47) 
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.FilterDispatcher.doFilter(FilterDispatcher.java:395) 
org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:102) 

解决方案 »

  1.   


    <?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>
        <package name="ktmap" namespace="/map" extends="default">
            <action name="searchPlaces" class="ktMapAction" method="searchPlace">
                <result name="success">/map/searchPlace.jsp</result>
            </action>
            <action name="editPlace" class="ktMapAction" method="editPlace">
                <result name="success">/map/editPlace.jsp</result>
            </action>
            <action name="savePlace" class="ktMapAction" method="savePlace">
                <result name="input">/map/searchPlace.jsp</result>
                <result name="success" type="redirectAction">getMapList.action</result>
            </action>
            <action name="removePlace" class="ktMapAction" method="removePlace">
                <result name="success" type="redirectAction">getMapList.action</result>
            </action>        <action name="searchAreas" class="ktMapAction" method="searchArea">
                <result name="success">/map/searchArea.jsp</result>
            </action>
            <action name="editArea" class="ktMapAction" method="editArea">
                <result name="success">/map/editArea.jsp</result>
            </action>
            <action name="saveArea" class="ktMapAction" method="saveArea">
                <result name="input">/map/editArea.jsp</result>
                <result name="success" type="redirectAction">getMapList.action</result>
            </action>
            <action name="removeArea" class="ktMapAction" method="removeArea">
                <result name="success" type="redirectAction">getMapList.action</result>
            </action>        <action name="searchPlacePosss" class="ktMapAction" method="searchPlacePos">
                <result name="success">/map/searchPlacePos.jsp</result>
            </action>
            <action name="editPlacePos" class="ktMapAction" method="editPlacePos">
                <result name="success">/map/editPlacePos.jsp</result>
            </action>
            <action name="savePlacePos" class="ktMapAction" method="savePlacePos">
                <result name="input">/map/editPlacePos.jsp</result>
                <result name="success" type="redirectAction">getMapList.action</result>
            </action>
            <action name="removePlacePos" class="ktMapAction" method="removePlacePos">
                <result name="success" type="redirectAction">getMapList.action</result>
            </action>
        </package>
    </struts>
      

  2.   

    web.xml片段
    <filter>   
            <filter-name>struts2</filter-name>   
            <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>   
        </filter>   
        <filter-mapping>   
            <filter-name>struts2</filter-name>   
            <url-pattern>*.action</url-pattern>   
            <dispatcher>REQUEST</dispatcher>   
            <dispatcher>FORWARD</dispatcher>   
        </filter-mapping>  
      

  3.   

    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="struts.devMode" value="false" />   
        <constant name="struts.i18n.reload" value="true" />   
        <constant name="struts.configuration.xml.reload" value="false" />   
        <constant name="struts.i18n.encoding" value="UTF-8" />   
        <constant name="struts.action.extension" value="action" />   
        <constant name="struts.objectFactory" value="spring" />   
        <constant name="struts.custom.i18n.resources" value="ApplicationResources,errors" />   
        <constant name="struts.multipart.maxSize" value="2097152" />   
        <constant name="struts.ui.theme" value="simple" />   
        <constant name="struts.codebehind.pathPrefix" value="/" />   
        <constant name="struts.serve.static" value="true" />   
        <constant name="struts.serve.static.browserCache" value="false" />   
      
        <package name="default" extends="struts-default">   
            <interceptors>   
                <interceptor-stack name="defaultStack">   
                    <interceptor-ref name="exception"/>   
                    <interceptor-ref name="alias"/>   
                    <interceptor-ref name="servletConfig"/>   
                    <interceptor-ref name="i18n"/>   
                    <interceptor-ref name="prepare"/>   
                    <interceptor-ref name="chain"/>   
                    <interceptor-ref name="debugging"/>   
                    <interceptor-ref name="scopedModelDriven"/>   
                    <interceptor-ref name="modelDriven"/>   
                    <interceptor-ref name="fileUpload"/>   
                    <interceptor-ref name="checkbox"/>   
                    <interceptor-ref name="multiselect"/>   
                    <interceptor-ref name="staticParams"/>   
                    <interceptor-ref name="actionMappingParams"/>   
                    <interceptor-ref name="params">   
                      <param name="excludeParams">dojo\..*,^struts\..*</param>   
                    </interceptor-ref>   
                    <interceptor-ref name="conversionError"/>   
                    <interceptor-ref name="validation">   
                        <param name="excludeMethods">input,back,cancel,browse</param>   
                    </interceptor-ref>   
                </interceptor-stack>   
            </interceptors>   
            <default-interceptor-ref name="defaultStack" />   
            <global-exception-mappings>   
                <exception-mapping exception="org.springframework.dao.DataAccessException" result="dataAccessFailure" />   
                <exception-mapping exception="org.springframework.orm.ObjectRetrievalFailureException" result="retrieveEntityFailure" />   
            </global-exception-mappings>   
        </package>   
      
        <include file="struts-map.xml" />   
        <!--    
        <include file="struts-npc.xml" />   
        <include file="struts-player.xml" />   
        -->   
    </struts>   问题甚是奇怪了,无论哪个action都是这个500错。如果是404就好了
      

  4.   

        <filter-mapping>   
            <filter-name>struts2</filter-name>   
            <url-pattern>/*</url-pattern>     
        </filter-mapping>