2013-10-23 106 views
1

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

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

我使用Apache 2.2与weblogic模块。我已经为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,这是理想的解决方案。

+0

BarbiePylon - 如果答案对你有帮助 - 请将它提出来。如果是解决方案 - upvote +接受 – MikroDel

+0

您的解决方案将无法正常工作,他说他已经尝试过......第三段文字 –

+0

当谈到http服务器时,我真的很糟糕,但我认为这会有所帮助,这是我发现的最完整的主题:http://www.apachelounge.com/viewtopic.php?t=4054&postdays=0&postorder=asc&start=0 –

回答

0

apache.org解释这样做也符合代码示例:

ErrorDocument 500 http://xxx/ 
ErrorDocument 404 /Lame_excuses/not_found.html 
ErrorDocument 401 /Subscription/how_to_subscribe.html 
+0

正如我在 – javajavajava

+0

@BarbiePylon - 你在哪里开始使用它?你是否向我们展示了你的链接?如果你的意思是“我已经搜索了很多,发现类似的东西问题,但不完全相同..“它太普遍不明白你真的尝试过什么,什么不是 – MikroDel

+0

我编辑了这个问题,包括我试过的示例配置... – javajavajava

0

根据WebLogic文档,用的errorPage参数,“插件重定向到一个错误页面时,后端服务器返回HTTP 503 /服务不可用响应,并且没有用于故障转移的服务器。“

因此,来自WebLogic的404错误将而不是重定向到我们的使用ErrorPage参数指定的自定义错误页面。

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

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

    <错误页>
        <错误代码> 404 </error-code>
        <位置> /errors/404.html </location>
    < /错误页>

  2. [的weblogic.xml]国家,你的上下文根为 '/':

    < WebLogic的web应用程序的xmlns =“HTTP://www.bea .com/ns/weblogic/90“xmlns:xsi =”http://www.w3。组织/ 2001/XMLSchema的实例“>
        <上下文根>/< /上下文根>
    </WebLogic的web应用程序>

  3. 你需要有一个适当的错误页面如“/错误”你的web应用的文件夹中。

注意“FMW欢迎页面应用”可能已经部署和使用“/”作为上下文根的WebLogic域。如果是这样的话,我认为可以放弃它或者没有实现它的目标是安全的,但是建议你把SR提交给产品支持,询问是否这样做很困难。

+0

我不卖这个解决方案将工作,如果你是导航到不同的Web应用程序的上下文路径。你不会还只是得到weblogic 404吗?无论如何,我很欣赏这种回应,但这不是我们要实施的解决方案。它是目前为止的最佳答案,如果它有效,我将非常乐意将此标记为答案!我会在今天晚些时候尝试测试它。 – javajavajava

+0

如果您的webapp(我的意思是那些上下文根不是'/'的)已启动并且处于活动状态,那么错误页面将照常运行。换句话说,如果在这个特定的Web应用程序的web.xml中配置了“错误页面”,则会打到您的特定/自定义错误页面;如果没有,你打weblogic默认错误页面。 如果你的webapp已关闭,你的命中错误页面的web应用程序的上下文根是'/'。 –

+0

我知道这不是一个最佳解决方案。不过,看起来Tomcat和Jetty都允许我们指定全局web.xml设置,但是我一直无法知道如何在WebLogic中执行此操作,对不起。 (请与我分享,如果你找到一个更优雅的解决方案。谢谢。 –