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