2012-07-05 52 views
0

我使用IBM WebSphere(WAS)7.0.0.19承載基於Java的web應用程序,我需要映射的擴展名是*。html的到一個特定的servlet,以便我可以做一些用戶提供的HTML文件的服務器端清理。 (服務器讀取文件,有一些額外的信息增強了它,並透明地提供了修改後的內容查看網頁的人。)的Websphere不使用歡迎文件列表映射後*。html的一個servlet

不幸的是,我這樣做的時候,歡迎-文件停止工作。以前,如果我輸入目錄的URL,服務器會查找index.html並提供它。現在,我剛剛得到了禁止的規則(「禁止 - 按規則」)。訪問日誌不會顯示更多內容 - 他們只是聲明目錄索引被服務器的規則禁止,這是正確的。我不希望Web服務器爲沒有index.html的目錄建立目錄表,但是當存在index.html時,我希望它提供該文件。

我首先想到的是,它試圖通過我的servlet來服務的index.html,該servlet是無法找到的文件(因爲URL缺少「的index.html」),因此,它認爲沒有指數html的。但是,我放入了一些調試代碼,並且非常確信當我簡單地轉到目錄本身時,servlet代碼永遠不會運行。

我真的不關心的index.html是否通過servlet或不提供服務 - 在這個特定文件的情況下,該servlet只會吐回原文件反正。我只想index.html由某些東西服務。

這裏是我的web.xml

<servlet-mapping> 
    <servlet-name>PageScrubber</servlet-name> 
    <url-pattern>*.html</url-pattern> 
</servlet-mapping>   

<welcome-file-list>   
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 

的相關章節它的價值,index.htm的和index.jsp中添加servlet映射之前沒有工作。只有index.html工作過。但是,現在他們都沒有工作。

我已經使用了兩個Oracle產品的同一個web.xml:的WebLogic(WLS)和Oracle應用服務器(OAS),沒有問題。

我相當確信它只是添加了導致問題的這個scrubber servlet,因爲刪除該指令導致目錄索引再次開始工作。

我沒有找到關於使用擴展文檔根不工作時的歡迎文件列表一些筆記,我試圖設置com.ibm.ws.webcontainer.EnablePartialURLtoExtendedDocumentRoot是真實的,但似乎沒有任何改變。

我差不多的想法。有沒有人有任何想法,爲什麼它沒有找到我的index.html?提前致謝!

+0

還有一個片:我試圖改變<歡迎文件>條目的順序把index.htm的頂部。這樣做後,網絡服務器仍然無法找到index.htm,即使它不符合通配符。 – mikepr 2012-07-05 20:36:03

+0

您是否嘗試刪除welcome-file-list(根據web.xml模式是可選的),只留下scrubber servlet?這可能導致請求被路由到servlet,因爲它現在仍然是.html映射的唯一有效目標。 – 2012-07-06 17:46:32

+0

感謝您的建議。我嘗試刪除歡迎文件列表,但它仍然無效。我也沒有在Manglu建議的道路上運氣。我仍然在追求這個問題,並會發布我能夠實現的任何結果。 – mikepr 2012-07-11 22:02:25

回答

1

警告:我工作了的記憶這裏。

歡迎文件曾經由文件服務Servlet(或類似的東西)提供服務。

這些信息將在WebSphere擴展文件。

我會退後一步並刪除pageScrubber並獲得文件服務Servlet來服務歡迎文件,看到的東西又回到了使用PageScrubber前的工作。

這些是我最初的想法。

HTH

的信息來添加