0

IBM WebSphere (WAS) 7.0.0.19 を使用して Java ベースの Web アプリケーションをホストしています。拡張子 *.html を特定のサーブレットにマップして、ユーザーが指定した HTML をサーバー側でスクラブできるようにする必要がありました。ファイル。(サーバーはファイルを読み取り、追加情報を追加して、変更されたコンテンツをページを閲覧しているユーザーに透過的に提供します。)

残念ながら、これを行ったとき、ウェルカムファイルが機能しなくなりました。以前は、ディレクトリの URL を入力すると、サーバーは index.html を探して提供していました。今、私は 403 の禁止されたルール (「禁止 - ルールにより」) を取得しています。アクセス ログにはそれ以上何も表示されません。ディレクトリのインデックス作成がサーバーの規則によって禁止されていることだけが示されていますが、これは正しいことです。index.html のないディレクトリの目次を Web サーバーに作成させたくありませんが、index.html がある場合は、そのファイルを提供したいと考えています。

私の最初の考えは、サーブレットを介して index.html を提供しようとしていて、(URL に "index.html" がなかったため) サーブレットがファイルを見つけられなかったため、index.html がないと考えたということでした。ただし、いくつかのデバッグ コードを挿入したところ、単純にディレクトリ自体にアクセスしただけでは、サーブレット コードが実行されることはないと確信しています。

index.html がサーブレットを介して提供されるかどうかはあまり気にしません。この特定のファイルの場合、とにかくサーブレットは元のファイルを吐き出すだけです。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 は機能していませんでした。以前は index.html のみが機能していました。しかし、今ではどれも機能しません。

私は同じ web.xml を 2 つの Oracle 製品 (WebLogic (WLS) と Oracle Application Server (OAS)) で問題なく使用しました。

このスクラバー サーブレットを追加しただけで問題が発生したと確信しています。そのディレクティブを削除すると、ディレクトリのインデックス作成が再び機能し始めたからです。

拡張されたドキュメント ルートを使用すると、welcome-file-list が機能しないというメモが見つかりました。com.ibm.ws.webcontainer.EnablePartialURLtoExtendedDocumentRoot を true に設定しようとしましたが、何も変わらないようでした。

私はほとんどアイデアがありません。私のindex.htmlが見つからない理由について、誰か考えがありますか? 前もって感謝します!

4

1 に答える 1

1

警告:ここでメモリが不足しています。

ウェルカム ファイルは、File Serving Servlet (またはそれに似たもの) によって提供されていました。

この情報は、WebSphere 拡張ファイルにあります。

一歩下がって、pageScrubber を削除し、サーブレットを提供するファイルを取得して、ウェルカム ファイルを提供し、PageScrubber の使用に戻る前に、動作していることを確認します。

これらは私の最初の考えです。

HTH

于 2012-07-06T05:55:12.120 に答える