Tomcat6.0起動時のエラー
最近、開発に使っているTomcatを6.0に変更したのですが、EclipseのTomcatプラグインからの起動時に以下のエラーがでて困ってました。
java.lang.NoClassDefFoundError: javax/servlet/Filter at java.lang.ClassLoader.defineClass1(Native Method) ...
クラスパス上に異なるバージョンのservlet.jarが存在する場合に発生するという情報があったので設定を確認したところ、いつ設定したかも覚えていない環境変数CATALINA_HOMEが4.1のパスを指定した状態で残っていました。。
2009/3/3
CATALINA_HOMEの影響ではなく、参照ライブラリーに含まれていたgeronimo-j2ee_1.4_spec.jarをTomcatの開発用クラスローダが読み込んでいました。参照ライブラリから除いても同じエラーだったため違うと思ったのですが、Tomcatを使うプロジェクトが参照していた別プロジェクトの参照先ライブラリーに含まれていたgeronimo-j2ee_1.4_spec.jarが影響していたようです。以下の内容でdevloader.confを作成して、Tomcatのconfフォルダに配置したところ解消しました。
(.*)/geronimo-j2ee(.*).jar