すべての URL で実行するフィルターを定義する WAR ファイルがあります。
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
...
<filter>
<filter-name>OurRedirectServletFilter</filter-name>
<filter-class>com.mycompany.RedirectServletFilter</filter-class>
</filter>
...
<filter-mapping>
<filter-name>OurRedirectServletFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
このフィルターは、「便利な」URL から対応する「実際の」URL へのリダイレクトを実行するように設計されていますが、それが問題に実際に関連しているとは思いません。
WebSphere 7.0 では、このフィルターはルート URL への要求に対して実行されませ/ctxroot
ん/ctxroot/
。代わりに、404 応答が返されます。が有効なパスであるか無効なパスであるかにかかわらず、に対して実行されます。/ctxroot/blah
blah
<url-pattern>/</url-pattern>
URL パターンおよびのフィルタ マッピングを追加しようとしまし<url-pattern></url-pattern>
たが、同じ動作になります。
ベースの WAS 7.0.0.0 でテストし、最新のフィックスパック (WAS 7.0.0.27) を適用しました。
フィルターは WAS 8.5 で期待どおりに機能し、WAS 8.0 だけでなく、私が試したすべてのバージョンの WebLogic、JBoss、Tomcat でも確実に動作します。これは WAS 7.0 のバグのようですが、回避策を見つけたいと思っています。誰か知ってる?