首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误: web.xml中的页面配置不起作用

错误: web.xml中的页面配置不起作用
EN

Stack Overflow用户
提问于 2013-04-01 14:23:43
回答 3查看 9.2K关注 0票数 0

我的web.xml中有以下配置:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">

    <display-name>tycoon-sa</display-name>

    <context-param>
        <param-name>br.com.caelum.vraptor.encoding</param-name>
        <param-value>UTF-8</param-value>
    </context-param>

    <error-page>
        <location>/</location>
    </error-page>

    <filter>
        <filter-name>vraptor</filter-name>
        <filter-class>br.com.caelum.vraptor.VRaptor</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>vraptor</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>ERROR</dispatcher>
    </filter-mapping>
</web-app>

我的目标是在出现异常或错误代码(404、500等)的情况下将用户重定向到主页。但它不起作用。我试图访问无效的URL,但没有被重定向。应用程序抛出一个NullPointerException。下面是堆栈跟踪:

代码语言:javascript
复制
SEVERE: Servlet.service() for servlet default threw exception  
java.lang.NullPointerException  
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:321)  
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)  
    at br.com.caelum.vraptor.resource.DefaultResourceNotFoundHandler.couldntFind(DefaultResourceNotFoundHandler.java:41)  
    at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:71)  
    at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)  
    at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)  
    at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)  
    at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:91)  
    at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)  
    at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88)  
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)  
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)  
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)  
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:489)  
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)  
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)  
    at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:456)  
    at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:327)  
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:193)  
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)  
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)  
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)  
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)  
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)  
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)  
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)  
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)  
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)  
    at java.lang.Thread.run(Unknown Source)  

Abr 02, 2013 11:04:32 AM org.apache.catalina.core.StandardHostValve custom  
SEVERE: Exception Processing ErrorPage[errorCode=0, location=/]  
java.lang.NullPointerException  
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:321)  
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)  
    at br.com.caelum.vraptor.resource.DefaultResourceNotFoundHandler.couldntFind(DefaultResourceNotFoundHandler.java:41)  
    at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:71)  
    at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)  
    at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)  
    at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)  
    at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:91)  
    at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)  
    at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88)  
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)  
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)  
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)  
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:489)  
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)  
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)  
    at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:456)  
    at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:327)  
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:193)  
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)  
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)  
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)  
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)  
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)  
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)  
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)  
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)  
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)  
    at java.lang.Thread.run(Unknown Source)  

有什么线索吗?

EN

回答 3

Stack Overflow用户

发布于 2013-04-01 14:49:25

这是为所有错误配置默认错误页面的方法

代码语言:javascript
复制
<error-page>
<location>/whateverpage.html</location>
</error-page>

请记住,只有当您使用Servlet3.0时,这才会起作用。如果您仍在使用Servlet 2.5,则必须指定每个错误代码。

代码语言:javascript
复制
<error-page>
<error-code>404</error-code>
<location>/notfound.html</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/general-error.html</location>
</error-page>
票数 1
EN

Stack Overflow用户

发布于 2013-04-01 14:27:07

代码语言:javascript
复制
RewriteEngine on    
Redirect /--xyz-75/ http://www.domain.com.au/
票数 0
EN

Stack Overflow用户

发布于 2013-04-01 14:34:29

在错误页标记404 /ErrorPage.jsp中指定错误代码

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15738647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档