2011-06-12 20 views
33

Eclipseを使用してTomcatを起動しようとすると次の例外が発生します(プロジェクトを右クリックして実行 - >サーバー上で実行)。TomcatとSpring Web - クラスが見つかりません例外org.springframework.web.context.ContextLoaderListener

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:1676) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397) 
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4660) 
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226) 
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221) 
    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:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 
Jun 12, 2011 8:46:11 PM org.apache.catalina.core.StandardContext listenerStart 

私はMaven(m2eclipse)を使ってプロジェクトをビルドしています。 Springライブラリに必要な依存関係を追加しました。最終的な成果物(クラスを含む)のlibディレクトリにspring-web.jarファイルがあります。 IDEの外にアプリケーションをデプロイすると、正常に動作します。

なぜこのようなことが起こるかについての説明は、非常に高く評価されます。

+1

Eclipse内のTomcatデプロイメントは、そのJARについてはわかりません。IDEの外でうまく動作しているということは、正しいWARを持っていると言いますが、Eclipseは何か他のものを参照しています。 Eclipseのバージョンが見つからない場合は、それを探してください。 – duffymo

+0

どこでeclipseで展開されたバージョンが見つかりますか? –

答えて

78

Eclipse Indigoでは、数日前にm2eclipse(WTP統合なしでm2eclipse-extras経由で追加)で同じ問題に直面しました。私はMaven Web Moduleを作成し、Dynamic Web Moduleファセットを手動で追加しました。 Eclipse WST Tomcat Serverにデプロイすると、プロジェクトが公開されたときにMavenの依存関係がサーバーにプッシュされていないように見えます。

解決策は簡単でした。プロジェクトエクスプローラでWebプロジェクトを右クリックし、[プロパティ]を選択します。プロジェクトのプロパティで[展開アセンブリ]を選択します。

「デプロイメント・アセンブリー」プロパティー・ページには、Eclipseからサーバーにアセンブルされた成果物としてパブリッシュされるコンテンツが表示されます。 Mavenの依存関係をすべて公開することをEclipseに伝える必要があります。

これを行うには、[追加]ボタンをクリックし、[Java Build Path Entries]を選択します。 [次へ]をクリックし、[Maven Dependencies]を選択します。 EclipseがプロジェクトをWSTサーバーに公開するときに、Maven依存関係のJARファイルがlibフォルダにパブリッシュされます。

このアプローチは私のために働いた。

+0

私はそのUIがEclipseのどこにあるのだろうと思っていました - 以前はJ2EE Module Dependenciesやそのような行に沿ったものでした。ありがとう! –

+1

地獄はい!ここに来るすべてのthouseのために。これは正解です! – Gleeb

+2

これは私のために働いていません。私はWebプロジェクトAを持っていますが、これはpom.xmlでBに依存しています。注意:Bのデプロイメントパスは "WEB-INF/lib/B-0.1.0-SNAPSHOT.jar"で、Maven依存関係はBのようにデプロイメントアセンブリに既にリストされています。 BはEclipseで開いているかどうかは分かりません。 Eclipseビルドパスは、プロジェクトが開いているかどうかを反映するために正しく変更されます(Eclipseプロジェクトまたは自分のリポジトリ内のjar)。私はSpringSource Tool Suite 2.9.2.RELEASEを使用しています。 Eclipseでクラスが正常に解決されたとしても、実行時にはまだClassNotFoundExceptionが返されます。困った。 – djb

4

Eclipseをサーバー展開のためにwarファイルに配置する最も簡単な方法は、右クリック - >エクスポート - > WARファイルを実行することです。その後、これを解凍して、内部にあるものを見ることができます。で、ビルド・パス上

<project-modules id="moduleCoreId" project-version="1.5.0"> 
<wb-module deploy-name="MyApp"> 
    <wb-resource deploy-path="/" source-path="/src/main/webapp"/> 
    <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/> 
    <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/> 
    <property name="java-output-path" value="target/classes"/> 
    <property name="context-root" value="MyApp"/> 
</wb-module> 
</project-modules> 

:あなたは「.settingsを/ org.eclipse.wst.common.component」開くあなたがウェブツールのWebアプリケーションの定義を参照すべきである、とのようなものが表示されている場合

Eclipseでは、ライブラリに「Maven Dependencies」が表示されていることを確認してください。 m2eclipseプラグインとWSTの最後のバージョンは自動的にMavenの依存関係を取得し、WARファイル内のWEB-INF/libにドロップします。

最後に、SpringSource Tool Suite(STS)の最新のコピーを入手することをお勧めします。 STSには、最新のm2eclipseとWSTのバンドルなど、多数の優れた機能があります。 Tomcat(またはそれらのバージョンのTomcat)でそれを使用することはできますが、そこにはいくつかのアーキタイプとチュートリアルがあり、すぐに動作するWebアプリケーションを得ることができます。

お楽しみください!

0

apache-tomcat-8.0.35\lib 

フォルダ(および、サーバーを再起動)する(ご使用することが起こる方のリリース)これらのファイルを追加します。あなたは、提供された情報が正しければ、それはと言う

spring-aop-4.0.1.RELEASE.jar 
spring-beans-4.0.1.RELEASE.jar 
spring-context-4.0.1.RELEASE.jar 
spring-core-4.0.1.RELEASE.jar 
spring-expression-4.0.1.RELEASE.jar 
spring-web-4.0.1.RELEASE.jar 
spring-webmvc-4.0.1.RELEASE.jar 
関連する問題