2014-01-19 19 views
12

サーブレットを使用する単純なWebアプリケーションを使用しています。私はそれをmavenプロジェクトとして作成し、それをeclipseにインポートしました(ファイル - >インポート - >既存のmavenプロジェクト)maven + eclipse + tomcat:クラスが見つかりません例外

warはtomcat 7に正しくデプロイされます。

私はEclipseでTomcat 7サーバーを作成してEclipseでTomcatを起動すると、アプリケーションを実行するときに例外が発生します。

root cause 

java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap 
    first.model.BeerExpert.<clinit>(BeerExpert.java:12) 
    first.servlet.BeerServlet.doPost(BeerServlet.java:26) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
root cause 

java.lang.ClassNotFoundException: com.google.common.collect.ImmutableMap 
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676) 
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521) 
    first.model.BeerExpert.<clinit>(BeerExpert.java:12) 
    first.servlet.BeerServlet.doPost(BeerServlet.java:26) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

日食/ Tomcatの中で

注意を行う必要がある特定のクラスパスの設定があります:私はクリーンインストールMVN実行することですし、それはjarファイルを作成します。そして、私はjamをtomcat(7)webappディレクトリに移動して再起動するとうまく動作します。

アプリケーション自体が正常に動作しているため、pom.xmlの詳細を投稿していません。しかし、私はそれを投稿することができます解決にはIDが必要です。

答えて

34

Tomcat & Spring Web - Class Not Found Exception org.springframework.web.context.ContextLoaderListener

右プロジェクトエクスプローラでWebプロジェクトをクリック - 'プロパティ' を選択します>。プロジェクトのプロパティで[展開アセンブリ]を選択します。

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

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

+0

この設定はpomファイルに設定できますか? –

+2

私はこの同じ問題を抱えていて、2日間何が間違っていたのか理解できませんでした。私の状況は非常にユニークだと思いますが、私はそれをただの場合に備えています。エクスポートされていないプロジェクトでは、プロパティ - >プロジェクトファセットとチェックされていないユーティリティモジュールに行きました。 Tomcatできれいにして再公開しました。それがそれでした。私はこれがちょっと変わったバグだと思っていますが、誰かを助けることができる場合に備えて追加しています。 – DavidR

+0

@DavidR、私は24時間これに苦労してきました。あなたはソリューションのインターネット上で唯一の人だと思われます。ありがとうございました!あなたが運がなければ、これを試してみてください。 – thomas88wp

関連する問題