15

您好我正在尝试为应用引擎上的 404 not found 错误设置静态错误页面。

根据https://developers.google.com/appengine/docs/java/config/webxml#Error_Handlers:它说 404 无法自定义。

根据: https ://developers.google.com/appengine/docs/java/config/appconfig#Custom_Error_Responses它似乎也不支持 404。

但是,https://groups.google.com/forum/?fromgroups=# !topic /google-appengine-java/3C-pY5ta2HQ 似乎表明可以自定义 404 错误页面。我现在很困惑。

4

7 回答 7

10

我意识到在本地开发服务器上运行应用程序时会发生此问题。但是,当我将应用程序部署到应用程序引擎时。我可以看到使用 web.xml 配置的 404 错误页面。感谢你的帮助。

于 2012-11-04T03:03:53.400 回答
5

为什么不将 Java EE <error-page> 条目用于这些目的?

在您的 web.xml 中:

<error-page>
    <error-code>404</error-code>
    <location>/app/error/404</location>
</error-page>
....
<error-page>
    <error-code>500</error-code>
    <location>/app/error/500</location>
</error-page>

您可以将它与 Spring 结合使用,并获得一个通用的错误控制器,例如:

....   
@Controller
public class ErrorController {

@RequestMapping(value = "/error/{errorCode}")
public final String errorCode(
        @PathVariable("errorCode") final String errorCode,
        final ModelMap modelMap) {
    modelMap.put("statusCode", errorCode);
    return "redirect:/ui/error.htm";
}

和你的类似jsp的文件:

<h2>Error!!!</h2>
....
<h3>Status code: #{param.statusCode}</h3>

希望这可以帮助。

于 2012-11-02T10:18:52.397 回答
1

您是对的,这目前在 App Engine 上的 Java 中不可用。但是,Python 有一个解决方法。有关这方面的示例,您可以查看GAE Boilerplate

希望这可以帮助。

于 2012-11-02T08:17:09.487 回答
1

我已经能够在本地开发服务器上的 App Engine SDK 版本 1.6.1 及更早版本中成功重定向 404 错误。但是,更新到 GAE SDK 1.7.5 后,我无法让它在本地工作。从那以后,我读到上面提到的 404 目前不支持它。

于 2013-02-24T16:19:15.947 回答
1

来自 Google App Engine 标准环境文档(2018 年 8 月 19 日): 在此处输入图像描述

简而言之,您必须具有此 URL 的 servlet 映射,如下所示:

<web-app>
    <servlet>
        <servlet-name>404</servlet-name>
        <jsp-file>/404.jsp</jsp-file>
    </servlet>
    <servlet-mapping>
        <servlet-name>404</servlet-name>
        <url-pattern>/404</url-pattern>
    </servlet-mapping>

    ...

    <error-page>
        <error-code>404</error-code>
        <location>/404</location>
    </error-page>
</web-app>

此配置按预期工作。尝试获取不存在的页面时显示错误页面(例如 www.domain.com/unknownPage)。

于 2018-08-19T13:03:16.620 回答
0

在应用引擎版本 1.9.48 中,这适用于云:

[网页.xml]

<web-app>

    ...    

    <error-page>
        <error-code>404</error-code>
        <location>/static-error.html</location>
    </error-page>
</web-app>
于 2016-12-07T01:30:38.580 回答
0

它的官方..它将不受支持: https ://cloud.google.com/appengine/docs/flexible/java/configuring-the-web-xml-deployment-descriptor

于 2018-03-21T04:28:43.030 回答