Java Struts映射在Tomcat8上失败

Java Struts映射在Tomcat8上失败,java,struts2,tomcat8,tiles,apache-tiles,Java,Struts2,Tomcat8,Tiles,Apache Tiles,当我部署一场战争时,我会得到以下跟踪。然而,当我手动分解并部署它时,一切都正常 异常堆栈跟踪示例: AuthorisationInterceptor.doAuthorisation: EXCEPTION TRAPPED e= No result defined for action com.myapp.oldapps.GenericOverview and result - No result defined for action com.myapp.oldapps.GenericSavings

当我部署一场战争时,我会得到以下跟踪。然而,当我手动分解并部署它时,一切都正常

异常堆栈跟踪示例:

AuthorisationInterceptor.doAuthorisation: EXCEPTION TRAPPED e= No result defined for action com.myapp.oldapps.GenericOverview and result - No result defined for action com.myapp.oldapps.GenericSavingsOverview and result  - action - file:/C:/tomcat/Tomcat%208.0/webapps/products/WEB-INF/classes/struts-oldapps.xml:31:133
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:374)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:276)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:76)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)........

org.apache.tiles.definition.NoSuchDefinitionException: GenericOverview
    at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:625)
    at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:321)
    at org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:155)
    at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:193)
    at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:372)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:276)
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
Struts定义: (struts-oldapps.xml)


总视图
总视图
总视图
阻塞错误
瓷砖定义: (tiles defs oldapps.xml)


我使用的是Struts版本2.3.35和tiles 2.2.2,这是个好问题!!! 我想您需要为此指定定义配置,如下所示:

在gradle(战争任务)中添加以下部分

from('src/main/application/META-INF'){ 包括“***.xml” 进入“META-INF” } 这将把application.xml和META-INF中保存的其他xml文件复制到WAR中的父META-INF中。如果META-INF的位置不同,则上述任务中的位置将发生变化

此外,对于基于struts的应用程序,请在web.xml中添加以下内容并运行war作业

    <context-param>
       <param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>
       <param-value>
         /WEB-INF/classes/tiles-defs.xml,
         ........
       </param-value>
    </context-param>

org.apache.tiles.impl.basictelescontainer.DEFINITIONS\u CONFIG
/WEB-INF/classes/tiles-defs.xml,
........
希望这有帮助

<definition name="GenericOverview">        
        <put-attribute name="Body" value="/jsp/app/generic/GenericOverview.jsp" />
    </definition>
    <context-param>
       <param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>
       <param-value>
         /WEB-INF/classes/tiles-defs.xml,
         ........
       </param-value>
    </context-param>