java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener


290

これらをビルドパスに含めました:

  • すべてのSpringライブラリ
  • Apache Tomcat 7.0ライブラリ

起動時にプロジェクトがまだ失敗します:

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 2, 2011 11:07:38 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.springframework.web.context.request.RequestContextListener
java.lang.ClassNotFoundException: org.springframework.web.context.request.RequestContextListener
    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 2, 2011 11:07:38 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class com.sun.faces.config.ConfigureListener
java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener
    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)

org.sprintframework.web-3.1.0.M1.jar、私は見ることができますorg.springframework.web.context.ContextLoaderListener

Googleの誰かspring.jarがそれを含めるべきだと言っていますがspring.jar、3.xディストリビューションには含まれていません。

Eclipse 3.6.2
Tomcat 7

編集:スプリングフォーラム(オフライン)の誰かが、プロジェクトのプロパティで「依存関係を自動的に更新する」をチェックする必要があると述べましたが、プロジェクトのプロパティにそのようなものはありません。


1
プロジェクトを閉じ、新しい職場を作成し、POMの依存関係を確認します。私はこの問題に直面する必要がありましたが、依存関係の修正後に修正されました
MLS

.war / libフォルダーの内容を投稿してください。または、少なくとも。* spring。* \。jarであるすべてのもの。
Simeon

pomに次の依存関係を追加しても、同じエラーが発生しました。<dependency> <groupId> org.springframework </ groupId> <artifactId> spring-web </ artifactId> <version> {Spring-Version} </ version> </ dependency>他の人がMavenを追加したと示唆していたことデプロイメントアセンブリへの依存関係。そして、pomを他の依存関係で更新し、maven> update projectを実行すると、エラーが発生し続けます。デプロイメントアセンブリを検査すると、Mavenの依存関係が追い出されていることがわかります。上記のプロセスをもう一度やり直さなければなりませんでした。
Tadele Ayelegn 2018

1
このソリューションはほとんどの場合に機能しました。デプロイメントアセンブリに依存関係を追加します。
18

回答:


777

Eclipseが管理するTomcatでSpring Webアプリケーションを実行するときにも、同様の問題が発生しました。プロジェクトのWebデプロイメントアセンブリにMavenの依存関係を追加することで、この問題を解決しました。

  1. プロジェクトのプロパティを開きます(たとえば、プロジェクトエクスプローラーでプロジェクトの名前を右クリックし、[プロパティ]を選択します)。
  2. 「Deployment Assembly」を選択します。
  3. 右マージンの「追加...」ボタンをクリックします。
  4. ディレクティブタイプのメニューから[Javaビルドパスエントリ]を選択し、[次へ]をクリックします。
  5. Java Build Path Entriesメニューから「Maven Dependencies」を選択し、「Finish」をクリックします。

Webデプロイメントアセンブリの定義に「Maven Dependencies」が追加されているはずです。


6
それはあなたがそれをするべき方法です、日食の正しい方法です。
2012

18
私も同じ問題を抱えていました。しかし、「プロパティ」(「マルチモジュールmavenプロジェクトのモジュール」)に「デプロイメントアセンブリ」が表示されません。
gtiwari333

9
これは正しいですが、非常に迷惑です。おそらく、私の意見では、m2eプラグインで対処する必要があります。
RickB 2013年

10
Web配置アセンブリの定義にMavenの依存関係が追加されているのを確認しましたが、エラーが発生し続けます。
dabadaba

10
Javaビルドパスエントリに何も含まれていない場合はどうなりますか?私はその場合です。
vdolez 2015

117

Eclipse WDTを使用していると、時々同じことが起こります。これが変更されていない以前に機能していたプロジェクトに発生した場合、その特別なイライラ。これが、この最後のシナリオで修正するために行うことです。

  1. Tomcatを停止します(実行中の場合)。
  2. 「サーバー」ビューを開きます。ウィンドウ>ビューを表示>その他>サーバー>サーバー
  3. [Tomcatサーバー]> [Tomcat作業ディレクトリの削除]を右クリックします。
  4. Tomcat Serverを右クリック> Clean
  5. サーバーを再起動します

これは通常、あなたが言及する問題を修正します。


3
その特定の状況に関するバグレポートがあります(bugs.eclipse.org/bugs/show_bug.cgi?id=365748)。Eclipse開発者は、それに関する詳細情報と問題を再現する方法を必要としています。
チャッキー2012

1
これはすべての人にとって柔軟なソリューションです。この回答は回答としてマークする必要があります。よい仕事Chepech
Javaの質問

3
これは、この問題の最も簡単な解決策です。Chepechさん、ありがとう!
バダル

2
これはeclipse 4.4を使用するのに役立ちませんでした。私はSusieのメソッドを使用して、Tomcatへのデプロイメントを削除/追加する必要がありました。クリーニングを実行するときに、tomcatデプロイメントフォルダーを監視していました。クリーンアップしてもデプロイメントフォルダがクリーンアップされない理由がわかりません。
祝福されたオタク

1
展開アセンブリはそれを行うための正しい方法ですが、何らかの破損などが原因で機能しない場合は、このクリーンアップによって実際に修正されます。
カラバシン

26

「Clean Tomcat Work Directory」または単に「Clean ..」を試すことができます。これにより、公開されたすべての状態が破棄され、最初から再公開されます。


このソリューションのThx!上記の受け入れられた答えは私にとってこの問題を解決しませんでしたが、あなたの問題は解決しました。
GreenTurtle 2012年

25

IntelliJ IDEAを使用しましたが、コンパイルは成功しましたが、Tomcatを起動すると次のように表示されます。

Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

最初は、JARがないと思っていましたが、それはありました。

解決策: File > Project Structure > ArtifactsOutput Layout右側のパネルをダブルクリックするAvailable Elementsと、のような名前のライブラリが左側のペインにMaven:...移動しWEB-INF/libます。

Tomcatを受け入れて再起動します。


OPがEclipseを使用していたため、この回答は質問に正確には関連していません
Adam Michalik

10
しかし、それは私を助けました。
udaybhaskar

8

これは確かにEclipse関連の問題です。私のために働いたのは、Eclipseサーバーのタブで新しいサーバーを作成することです。次に、この新しいサーバーでアプリケーションを実行します。動作するはずです。



7

上記のすべてが機能しない場合は、以下を試してください。それは私のために働いた。

サーバーからプロジェクトを削除>サーバーを再起動>サーバーにプロジェクトを追加>サーバーを再起動します。

詳細な説明:

1. Right click on server > Add and Remove
2. Select your project > Remove > Finish
3. Restart your server
4. Right click on server > Add and Remove
5. Select your project > Add > Finish
6. Restart your server again.

5

Tomcat 7ランタイム用に構成されたEclipseプロジェクトで同じ問題に直面していました

プロジェクトを右クリックして、プロジェクトのプロパティに移動します。Deployment Assemblyをクリックします。ユーザーライブラリを使用してコンパイル時に作成したスプリングライブラリjarが見つからないことに気づきました。jarファイルを追加するだけで、tomcatの起動時にコンソールにエラーが表示されないはずです。


5

Mavenを使用している場合、おそらくこのプロジェクトはまだビルドされていません。最初に、mvn clean package次に再デプロイを再試行してください。


Eclipse 3.6.2 + Tomcat 7
emeraldhieu

4

Eclipse Lunaのソリューション:

  1. Maven Webプロジェクトを右クリック
  2. [プロパティ]メニューをクリックします
  3. 表示されたウィンドウの左側で「Deployment Assembly」を選択します
  4. ポップアップウィンドウの右側にある[追加...]ボタンをクリックします
  5. ポップアップウィンドウがもう1つ表示されます(新しいアセンブリディレクトリ)
  6. 「Javaビルドパスエントリ」をクリックします。
  7. 「次へ」ボタンをクリックします
  8. [完了]ボタンをクリックして、新しいアセンブリディレクティブポップアップウィンドウを自動的に閉じます。
  9. 「適用」ボタンと「OK」ボタンをクリックします
  10. Webアプリケーションを実行する

4

IntelliJ IDEAを使用していて、アプリケーションをTomcatサーバーにデプロイすると、次のようになります。[ファイル]メニュー-> [プロジェクト構造]を選択-> [アーティファクトをクリック]-> jarを選択して右クリック-> WEB \ libに挿入->サーバーを再起動ここに画像の説明を入力してください


3

実際、これはTomcatの問題です。 プロジェクトの「lib」フォルダーに移動し、すべての「Spring」関連のjarをこれにコピーします。プロジェクトを更新すれば、問題ありません。 TomcatがSpringコアクラスを見つけることができないため、この問題はいつまでも持続します。


2

私も同じエラーがありました。以下の依存関係をPOMファイルに追加していません。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>4.1.7.RELEASE</version>
  </dependency>

しかし、私の依存関係は、この依存関係を追加する前でも実行されていました。しかし、ある時点で停止し、上記と同じエラーが発生し始めました。

誰かがこのエラーを解決できなかった場合、このリンクで解決することもできます


1
<dependency> <groupId> org.springframework </ groupId> <artifactId> spring-web </ artifactId> <version> 4.1.6.RELEASE </ version> </ dependency>これを追加すると、このエラーを解決できました。
Ashutosh S 2016

2

同じ問題がありました。私のpomにspring-web依存関係を追加することで解決しました。ContextLoaderListenerクラスが拡張されたSpring -Web jarを使用し、ContextLoaderがServletContextListenerを実装し、パッケージorg.springframework.web.contextにあることを確認してください。3.0.4.RELEASEを使用しました


1

私が試した

  • プロジェクトクリーンmvn
  • 掃除
  • Tomcat作業ディレクトリを自動的にクリーンアップ
  • 依存関係を更新する

少なくとも一時的に機能した唯一のことは、Webデプロイメントアセンブリの定義にMavenの依存関係を追加することでした。

しかし、これは永遠に機能しません!数日後には機能しなくなります。私の解決策は、Maven依存関係を削除し、変更を適用して、Maven依存関係を再度追加することでした。

私が使用しています-eclipse Juno-組み込みメイブン-tomcat 7


1

Gradleユーザーの場合、次の手順で動作します

1)EclipseのサーバータブからTomcatサーバーを停止して削除ます

Eclipse Tomcatタブ

2)Tomcatのインストールからwebappと作業ディレクトリをクリーンアップします(参照、ハウツー:Tomcatのキャッシュをクリアして、古いJSPの問題を修正します

$ rm -r /usr/local/AT7028/work/*
$ rm -r /usr/local/AT7028/webapps/WAR_NAME

3)ビルドツールを使用してプロジェクトをクリーンアップおよびエクリプス化する

$ ./gradlew clean eclipse// mvnユーザーに対してそれぞれのコマンドを実行し、$ mvn clean package

4)Eclipseで新しいTomcatサーバーを構成し、プロジェクトを再度実行します。


1

私も同じ問題に直面しました...そして、以下の手順に従って解決しました:

RC(Webプロジェクトを右クリック)->プロパティ->デプロイメントアセンブリ->追加-> Javaビルドパスエントリ->次へ->不足しているjarファイルを選択->次へ->完了

アプリケーションは正常に実行されています...


OPにエラーがありますが、デプロイメントアセンブリにjarファイルがありませんでした。
Blamkin86、2015年

1

私は同じ問題を抱えており、上記の手順を使用してそれを解決しました。

RC(Webプロジェクトを右クリック)->プロパティ->デプロイメントアセンブリ->追加-> Javaビルドパスエントリ->次へ->

[次へ]をクリックした後、オプションの[次へ]と[完了]が無効になっている唯一の空白のウィンドウが表示されます。


1

私も同じ問題に直面しました。

サーバーを構成から削除し、サーバーのランタイム環境に追加してEclipseを再起動した後に追加し直しただけです。


1

私にとっての修正は、私のwebappモジュール> Maven>プロジェクトの更新を右クリックすることでした


1

私がこの状況に最も適した1つの簡単な解決策は、単にワークスペースの.metadataフォルダーを削除して、プロジェクトを再度インポートすることです。他のすべてのオプションを試しても成功は保証されません。場合によっては、上記のソリューションが機能することがあり、この設定を修正するために貴重な時間を費やすことがあります。

ある日、ワークステーションを掃除することにしました。クライアントごとに適切なフォルダーにプロジェクトを配置しました。その結果、すべてがめちゃくちゃになりました。丸一日過ごした後、それは固定された作業スペースに行き着きませんでした。翌日、ワークスペースの.metadataフォルダーを削除し、すべてのプロジェクトを再度インポートしました。ビンゴがすべて設定されました。


1

置く <packaging>war</packaging>、あなたがMavenを使用している場合は、あなたのpom.xmlに。その場合、多分それは瓶のパッケージで

デプロイメントアセンブリにMavenライブラリが必要です


0

「プロジェクト構成の更新」を使用すると、プロジェクトのビルドパスがめちゃくちゃになりました。

修正:「ビルドパスの構成...」メニューを開き(プロジェクトを右クリック)、各ソースフォルダーの[含める] / [除外する]オプションを修正します。それでうまくいきました。


0

多くの場合、それはjavaファセットの問題です。jdkまたはjreまたはjspのバージョンは、mavenプロジェクトのfaceとは異なります。


0

私にとっての実際の解決策は、「m2e-wtp-Maven Integration for WTP」をインストールすることでした。その場合、マルセロの解決策は必要ありません。


0

上記のいずれも機能しない場合は、リスナークラスから.classを削除します。

<listener>
<listener-class>

org.springframework.web.context.ContextLoaderListener.class

</listener-class>
</listener>

0

これは私のために働く..

maven Webプロジェクトを右クリックして、[プロパティ]メニューをクリックします。ポップアップウィンドウの左側にある[デプロイメントアセンブリ]を選択します。ポップアップウィンドウの右側にある[追加...]ボタンをクリックします。ポップアップウィンドウがもう1つ表示されます(新しいアセンブリディレクトリ)。 [Javaビルドパスエントリ]をクリックします[次へ]ボタンをクリックします[完了]ボタンをクリックします。新しいアセンブリディレクティブポップアップウィンドウが自動的に閉じます。[適用]ボタンと[OK]ボタンをクリックしますWebアプリケーションを実行します


0

これは、Gradleを使用してIntelliJプロジェクトでHibernateマッピングに変更を加えた後に起こりました。プロジェクトを再構築するだけでうまくいきました。


0

私は四半期に数回これに遭遇しました。今回はgit diffに最小限の変更の要約があり、eclipseでリセットされたクラスパス(WEB-INF / lib依存関係が欠落している)に問題を追跡しました。これは、親/兄弟のmavenプロジェクトをプルインまたはプルアウトするときにいつでも発生するようです。

Spring jarをTomcat Webコンテナーlibに追加することについての言及があります。これは問題なく、ほとんどのEEサーバーの実行方法です。ただし、tomcatのクラスローダーツリーの上位にスプリングを配置すると、warコンテキストのクラスローダーレベルよりも高く実行されることに注意してください。libsをper / war低レベルクラスローダーに残すことをお勧めします。

Eclipseの構造プロジェクトの変更後、切り捨てられた.classpathの後に次のように表示されます。

Dec 18, 2016 11:13:39 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.springframework.web.context.request.RequestContextListener
java.lang.ClassNotFoundException: org.springframework.web.context.request.RequestContextListener

クラスパスがリセットされ、WEB-INF / lib依存関係が削除されました。

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
        <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
</classpathentry>

戻す

<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>

大丈夫です

ありがとう/ michael


0

ビルドパスにlibが含まれているが、デプロイメントアセンブリには含まれていないときに、このエラーが発生しました。また、context.xmlが見つからなかった場合も同様です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.