そこで、Eclipse から正しくビルドおよびデバッグする Web サービス プロジェクト (単なる動的 Web プロジェクト) から始めました。共有ライブラリに入れたい共通コードのチャンクを取り出したので、これらのクラスは、Web プロジェクトが参照する別の jar プロジェクトに入ります。
Web プロジェクトでは、Project->Properties->Java Build Path->Projects->Add を実行し、jar プロジェクトを追加しました。これにより、コンパイル時のクラスパスの問題がすべて正しく解決され、すべてが正常にビルドされます。しかし、実行時に Tomcat サーバーが起動すると、Spring は jar ファイルに含まれるいくつかのクラスを注入しようとし、NoClassDefFoundError が発生します。
.class ファイルとプロパティ ファイル、および META-INF ディレクトリの内容が ./build ディレクトリに表示されますが、WEB-INF/lib ディレクトリはインプレースで参照されているようで、jar 依存関係がコピーされません。 Web アプリ ライブラリの一部として表示されます。
他のjarプロジェクトが実行時にTomcatで利用可能である必要があることをEclipseに伝える魔法の呪文は何ですか? Ant ビルド スクリプトから、最初に他のプロジェクトを WEB-INF/lib にビルドするだけで、すべて正常に動作しますが、Eclipse のデバッグには使用できません。