Servlets struts2中404 pageNotFound的错误

Servlets struts2中404 pageNotFound的错误,servlets,struts2,oc4j,struts-config,Servlets,Struts2,Oc4j,Struts Config,谁能解释一下我为什么会遇到以下异常情况: 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 C

谁能解释一下我为什么会遇到以下异常情况:

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)
当我假设还没有找到页面,而我的请求url以[some_ext]结束时,我得到了它,比如.htm、.blah。但是当请求没有[some_ext](如_http:/domain/part1/part2/nosuchurl)时,一切都正常,我会在struts配置中映射正常的未找到页面:

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

支柱2
*.行动

如果扩展名为.action,则仅通过StrutsPrepareAndExecuteFilter,则无法获取此异常。对于处理404错误,您可以覆盖默认错误页。

谢谢您的回答,但这没有帮助。首先,我不需要任何扩展,其次,我对默认和自定义404页面都有这个例外。此外,如果我像你建议的那样映射,我对以
.action
结尾的不存在的URL没有例外,但我对所有其他URL都有例外。正如你所知,如果你没有指定任何扩展,struts将提供.action扩展。如果你不需要这个过滤器,那么你还有什么其他的扩展呢?到@Mohana Rao SV。正如我所说的,我不需要任何扩展,我只需要显示正常的404页面找不到,如果用户指定了一些错误的url。这里出现了一个问题,如果这个错误的url没有扩展名,我得到了404页,但是当有一些扩展名(不管是哪个扩展名)时,我得到了ClassCastException(500错误页),404页应该在哪里。我想可能是oc4j的bug,因为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.action.extension= ,
<filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.action</url-pattern>
</filter-mapping>