我已经在部署在 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 应用程序中的配置的一部分,您还将拥有:
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/