1

我已经搜索了很多,发现了类似的问题,但不完全相同,但是如果这是一个重复的问题,我很抱歉。

基本上,当我的应用程序关闭时,我正在尝试使用自定义错误页面(即 404.html)处理 HTTP 错误响应(即 404),但 weblogic 仍在运行。

我正在使用带有 weblogic 模块的 Apache 2.2。我已经为 Apache 设置了 ErrorDocument 指令以及块内的 ErrorPage 参数。

我还在我的 web.xml 中为我的应用程序设置了位置,但这个问题是针对应用程序何时关闭的。

目前,当应用程序关闭并且 weblogic 正在运行时,我正在获取 weblogic 默认 404 页面。如何强制 apache 和/或 weblogic 使用我的自定义页面?

这是我尝试过的一种配置变体的示例。

 <IfModule mod_weblogic.c>
    WebLogicCluster host:port,host:port
    KeepAliveEnabled ON
    WLProxySSL OFF
    Debug ALL
    ErrorPage http://host:port/errors/errorSystem.html
</IfModule>

我可以直接访问错误页面,但流量永远不会在错误时转发。

我还尝试将 ErrorPage 设置为相对 url,这是理想的解决方案。

4

2 回答 2

0

根据 WebLogic 文档,使用 ErrorPage 参数时,“当后端服务器返回 HTTP 503/Service Unavailable 响应并且没有用于故障转移的服务器时,插件将重定向到错误页面。” .

所以来自 WebLogic 的 404 错误不会被重定向到我们用 ErrorPage 参数指定的自定义错误页面。

解决方法是创建一个简单的 Web 应用程序并将其部署到您的 WebLogic 上。在这个网络应用程序中:

  1. 在 [ web.xml ] 中指定您的自定义错误代码和页面映射,例如:

    <error-page>
      <error-code>404</error-code>
      <location>/errors/404.html</location>
    </error-page>

  2. 在 [ weblogic.xml ] 中声明您的上下文根是“/”:

    <weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <context- root>/</context-root>
    </weblogic-web-app>

  3. 您需要在 webapp 的“/errors”文件夹中放置错误页面。

请注意,“ FMW 欢迎页面应用程序”可能已经部署并在您的 WebLogic 域中使用“/”作为上下文根。如果是这种情况,我认为取消部署或取消目标是安全的,但建议您向产品支持提出 SR,询问这样做是否困难。

于 2013-11-05T00:19:30.900 回答
0

来自apache.org的解释也使用代码示例:

ErrorDocument 500 http://xxx/
ErrorDocument 404 /Lame_excuses/not_found.html
ErrorDocument 401 /Subscription/how_to_subscribe.html 
于 2013-11-04T09:06:01.107 回答