表題の通りだが、2日悩んだあげく、一瞬で解決してしまったので、なんか悔しいからメモを残しておく。
問題
eclipse(pleiades 3.7)でtomcatプラグインにより、tomcat(pleiadesに付属)6.0を起動したら、以下の例外をスローして起動しなかった。
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
tomcat7.0も起動不可。tomcat5.5は起動可能だった。
また、tomcat6.0もeclipse経由ではなく、起動バッチ(start.bat)を実行した場合は正常に起動した。
解決方法
設定>Tomcat>拡張で、JavaプロジェクトをTomcatのクラスパスへ追加でチェックが入っているプロジェクトがある場合、チェックを外す。
・・・これだけで起動出来た。
原因考察
上記のチェックが入っていたプロジェクトは、eclipseの動的Webプロジェクトであり、tomcat5.5ベースだった。このため、クラスパス関係が不正なものになった?
ちなみに、commons-logging-1.1.3.jarをtomcatのlibに配置してもダメ。tomcatプラグインのクラスパスにcommons-logging-1.1.3.jarを指定したら、java.lang.NoClassDefFoundErrorは出なくなるが、今度はそんなメソッドはないよ例外が出た。なので、5.5のものと混合したのかなぁと。