私は、互いに依存するいくつかのMavenプロジェクトをEclipseに持っています。これらの一部は、Spring ライブラリ (Spring コア、Spring MVC など) に依存しています。
「mvn clean install」を使用してプロジェクトをビルドすると、maven によって war ファイルが生成され、./target/ フォルダーに配置されます。次に、この war ファイルを取得して、実行中のアプリケーション サーバーにデプロイします。Tomcat 7 と Jboss 7.1.0 の両方で war ファイルをテストしましたが、正常に動作します。
ただし、プロジェクトをEclipseから直接実行しようとすると問題が発生します。サーバーコードをデバッグできるようにしたいのですが、これが可能であることを知っている唯一の方法は、Eclipse内で実行されているアプリケーションサーバーでプロジェクトを実行することです。
Eclipse で Tomcat アプリケーション サーバーを構成しました。Maven プロジェクトを選択して右クリックし、[Run on Server] を選択すると、プロジェクトは実行中の Tomcat インスタンスにデプロイされますが、何らかの理由で次のエラーが発生します。
12-May-2012 15:48:22 org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:525)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:507)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:124)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4715)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1568)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1558)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
12-May-2012 15:48:22 org.apache.catalina.core.StandardContext listenerStart
SEVERE: Skipped installing application listeners due to previous error(s)
私は同じことを試しました。つまり、Eclipse の Jboss インスタンスでプロジェクトを実行しましたが、いくつかのライブラリが見つからないことにも不満があります。それが不平を言うライブラリのほとんどは、Maven POM ファイルで依存関係と呼ばれるものです。
プロジェクトをTomcatまたはJboss(Jbossツールを使用)にデプロイすると、依存関係がデプロイされていないため、エラーが発生すると思われます。すべての依存関係もデプロイするように Eclipse に指示するには、他の構成が必要ですか?
warファイルを手動でデプロイすると機能することに注意してください。Eclipse で「サーバー上で実行」オプションを使用して展開すると、機能しません。
ありがとう