2013-08-30 61 views
0

我們有幾個servlet應用程序位於同一臺服務器上。我們希望每個應用都維護自己的自定義404頁面,而不是每個應用都轉發到服務器根目錄下的同一個頁面。添加這樣的配置在web.xml中不起作用:將404重定向到servlet應用程序外的頁面

<error-page> 
    <error-code>404</error-code> 
    <location>/someOtherApp/notFound.html</location> 
</error-page> 

它試圖重定向到/myAppName/someOtherApp/notFound.html而非/someOtherApp/notFound.html

任何想法?

+1

不確定是什麼框架,但你有沒有試過' ../notFound.html'? – MrLore

+1

你的'notFound.html'文件位於哪裏?更新了 –

+0

以指定這是來自web.xml。這些只是部署到jetty或weblogic的戰爭文件(取決於環境)。 servlet規範之上的框架並不重要。大多數這些戰爭都提供靜態文件(在其他戰爭中調用休息服務的JavaScript)。 notFound由不同戰爭中的應用程序提供服務。我更新了這個例子,使之更加清晰。 –

回答

0

<error-page>

<error-page> 
    <error-code>404</error-code> 
    <location>/someOtherApp/notFound.html</location> 
</error-page> 

location元件的路徑必須是相對於應用程序的根。你不能讓它由另一個應用程序提供服務。

一些jetty文檔here

0

Location確實不是重定向,它做了一個轉發。正如Sotirios Delimanolis指出的那樣。它必須保留在webapp中(相對於)。

+0

,當你用這種方式說出來時,它很有意義。您不希望瀏覽器URL更改爲某個404頁面。轉發無法在應用程序之外工作。謝謝 –

相關問題