jboss - 如何自定义 JBoss AS7 404 页面

标签 jboss http-status-code-404

我已经在部署在 JBoss AS 7.1 中的 Web 应用程序中创建了一个自定义 404 页面。
因此,如果我的应用程序位于 fubar dot com :8080/Myapp 并且我转到 fubar dot com :8080/Myapp/xyzzy,我将获得自定义错误页面(在 Web 应用程序的 web.xml 文件中定义)。

但是,当我访问 fubar dot com :8080/xyzzy 时,JBoss 会显示默认的 404 页面,该页面显示它是 JBoss 以及哪个 JBoss 版本。

我需要替换此页面以隐藏此信息。

请指教。

最佳答案

如果您想为 JBoss 7 中的所有其他上下文自定义错误页面,这是您在 Myapp 应用程序中的配置的一部分,您还将拥有:

  • 禁用 JBoss 欢迎页面:在文件 standalone/configuration/standalone.xml(或 domain/configuration/domain.xml)中,将属性 enable-welcome-root 设置为 false(默认为 true)
  • 然后,您必须部署一个简单的 war 文件,将其上下文根设置为“/”,并为此 war 定义错误页面(使用与 Myapp 相同的方法)。所以,war 结构应该类似于(error.war 名称是任意的):

  •    error.war
        |
        |- META-INF
        |- WEB-INF
        |     |    
        |     |- web.xml
        |     |- jboss-web.xml
        |
        |- error
              |- 404.html
    


    其中 web.xml 文件是:
    <?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>yourcompanyname</display-name>
      <error-page>
                <error-code>404</error-code>
                <location>/error/404.html</location>
      </error-page>
    </web-app>
    

    在 jboss-web.xml 中将上下文根定义为“/”,因此它将是:
    <jboss-web>
        <context-root>/</context-root>
    </jboss-web>
    

    文件 404.html 是 Jboss 将显示的自定义 html 错误页面,而不是 404 默认错误。就是这样,在 JBoss 7 中部署这个应用程序,当您访问 fubar dot com:8080/yzyqqa 或任何其他根上下文时,您将拥有自定义的 404 错误页面。请记住,您还必须在 Myapp web.xml 中保留错误配置(并且在所有其他应用程序中,您可能会在服务器中部署)。

    顺便说一下,您是否考虑过让您的应用 Myapp 可以直接从 fubar dot com:8080 访问?或者甚至更好,使 jboss 服务器只能从代理(例如 Apache)访问?。这样你也可以避免这个问题。

    我希望它有帮助!

    关于jboss - 如何自定义 JBoss AS7 404 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13476028/

    相关文章:

    java - 如何在 JBoss 中禁用 std-out 捕获?

    java - 可以从命令行在 Eclipse 中启动 Java EE 服务器吗?

    php - 当我的服务器上的文件发生更改时发送电子邮件

    javascript - 为什么动态加载确实存在的文件时会收到 404 错误?

    json - 尝试从 React 前端向 Flask 后端发出 POST 请求时收到 404

    php - Apache不为不存在的URL返回404错误

    java - 如何在JBoss 6.4中禁用javax.validation.api

    java - 如何解密 jboss login-config.xml 中的密码?

    java - 将请求从一个 Web 服务转发到另一个 Web 服务

    android - GAE 云端点与 android 的集成 - 未找到 GoogleJsonResponseException 404