JspSourceDependent.getDependants() で悩む

とある案件で開発環境を構築していてはまったメモ。
既存のプロジェクトをTomcat5.5上にデプロイし、JSPを表示しようととしたら、、、


Generated servlet error:
The return type is incompatible with
JspSourceDependent.getDependants()

JSPの問題ではなさそうなのでいろいろ調べてみたところ、「Tomcat5.5上で、JSPをJDK1.4互換で動かすのは無理」っていうことみたいでした。というのは、、、

Tomcat5.5上でJSPを実行(サーブレットコンパイル)すると、

java.util.List getDependants()
というメソッドが生成される。が、Tomcat5.5に付属するjasper-runtime.jarには、
java.lang.Object getDependants()
というメソッドが定義されている。よって、JDK1.4だと上記のエラー(return type is incompatible)が発生する、ということみたいです。JDK5.0だと、継承関係にある戻り値が許可されるから、上記問題は発生しない、と。

そもそも、そのプロジェクトは「Tomcat5.0上で動かしてください」となっていました。。。一応調べてみたところ、Tomcat5.0のjasper-runtime.jarには、

java.util.List getDependants()
とありました。そりゃそうだ。