Web アプリケーションを WAS 7.0.0.7 から WAS 8.5 にアップグレードしたいと考えていました。アプリケーションは正常にデプロイされますが、アクセスしようとするとすぐに次の例外が発生します。
java.lang.AbstractMethodError: javax/servlet/ServletRequest.getDispatcherType()Ljavax /servlet/DispatcherType
WAS 8 は Servlet 3.0 コンテナーを使用しますが、アプリケーションで使用しているバージョン 2.4 と下位互換性があるはずです。
クラスローディングを PARENT LAST に設定しても、同じエラーが発生します。
Websphere は、Servlet 3.0 以降で使用できる getDispatcherType() を呼び出しています。なんで?
次の web.xml ヘッダーを使用します
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">