eclipseとtomcatプラグインとMavenで開発時のハマリポイント

まず、以下の組み合わせで開発している前提とします。

Eclipse
・m2eclipse プラグイン
・Sysdeo Tomcat Launcher

  • おさらい

  Sysdeo Tomcat Launcherはtomcatを起動するプラグインです。
  .tomcatpluginというファイルにjarのフルパスを書いておくと、tomcatが起動時にそのjarを読み込んでくれます。
  .tomcatpluginを更新するにはプロジェクトカレントで、以下のコマンドを打ちます。
    mvn sysdeo-tomcat:m2eclipse
  このコマンドでpom.xmlに書かれているjarのローカルリポジトリへのフルパスが更新されます。



しかし上記の組み合わせで開発を行うとtomcatの起動時にエラーが出る場合があります。
原因はjarが重複しているためです。

解消するためには、tomcatの開発用クラスローダー(DevLoader)から
Servlet API系のJAR(geronimoservlet_2.4_spec-1.1.jarやservlet-2.4.jar)

org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER
のを外します。


これで重複が無くなり、tomcatが起動できます。
WEB-INF/libなどに同じjarが置いていないかも気をつけて下さい。
tomcat起動時に自動で読み込まれる場所なので。



参考サイト
http://www.nulab.co.jp/kousei/chapter7/04.html


場合によってはjsp系のjarも除外しないといけないようだ。
http://d.hatena.ne.jp/dragon3/20060808/1155051521