Сбой отображения Struts на Tomcat 8 - PullRequest
2 голосов
/ 12 февраля 2020

Я получаю следующую трассировку стека при развертывании войны. Однако, когда я вручную разбираю и развертываю его, все работает нормально.

Пример трассировки стека исключений:

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)

<action name="GenericOverview" class="com.myapp.oldapps.GenericOverview" method="display">
            <result name="success" type="tiles">GenericOverview</result>
            <result name="kyc" type="tiles">GenericOverview</result>
            <result name="input" type="tiles">GenericOverview</result>
            <result name="error" type="tiles">BlockingError</result>
        </action>

Определение тайлов: (tile-defs-oldapps. xml)

<definition name="GenericOverview">        
        <put-attribute name="Body" value="/jsp/app/generic/GenericOverview.jsp" />
    </definition>

Я использую Struts версии 2.3.35 и тайлы 2.2.2

1 Ответ

1 голос
/ 12 февраля 2020

Хороший вопрос !!! Я полагаю, вам нужно указать конфигурацию определения для этого, как показано ниже:

Добавить нижнюю часть в gradle (военное задание)

из ('src / main / application /) META-INF ') {включить' ** / *. xml 'в' META-INF '} Это скопирует приложение. xml и другой файл xml, хранящийся в META-INF, в родительский META-INF в WAR , Если местоположение META-INF отличается, то местоположение изменится в указанной выше задаче.

Дополнительно для приложения на основе распорок добавьте ниже в Интернете. xml и запустите военное задание

    <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>

Надеюсь, это поможет !!!

...