Ошибка на 404 странице не найдена с распорками2 - PullRequest
0 голосов
/ 26 марта 2012

Может кто-нибудь объяснить мне, почему я получаю следующее исключение:

java.lang.ClassCastException: org.apache.struts2.dispatcher.StrutsRequestWrapper cannot be cast to com.evermind[Oracle Containers
    for J2EE 10g (10.1.3.5.0) ].server.http.EvermindHttpServletRequest
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.5.0) ].server.http.NotFoundServlet.sendNotFound(NotFoundServlet.java:26
    )
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.5.0) ].server.http.NotFoundServlet.service(NotFoundServlet.java:18)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.5.0) ].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java
    :64)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.5.0) ].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java
    :15)
    at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)

Я получаю его, когда я предполагаю, что страница NOT_FOUND и мой URL-адрес запроса заканчиваются. [Some_ext] как .htm, .blah,Но когда запрос без. [Some_ext] (например, _http: / domain / part1 / part2 / nosuchurl), тогда все в порядке, и я получаю нормальную страницу NOT_FOUND, отображаемую в конфигурации Struts:

<default-action-ref name="nopagefound"/>
<action name="nopagefound">
  <result>/WEB-INF/jsp/errors/notfound.jsp</result>
</action>

Я использую Struts2(2.3.1.2) + Spring развернут на oc4j 10.1.3.5.0.

Вот мое отображение распорок:

<filter>
    <filter-name>struts</filter-name>
    <filter-class>
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
</filter>
<filter-mapping>
    <filter-name>struts</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

И в Struts.properties

struts.action.extension= ,

1 Ответ

0 голосов
/ 26 марта 2012
<filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.action</url-pattern>
</filter-mapping>

Если расширение - .action, тогда только проходить через StrutsPrepareAndExecuteFilter, вы не можете получить это исключение.А для обработки ошибки 404 вы можете переопределить страницу ошибки по умолчанию.

...