web-dev-qa-db-ja.com

Eclipseの警告:XXXXXXXXXXX.jarはエクスポートまたは公開されません。ランタイムClassNotFoundExceptionsが発生する可能性があります

Eclipseのビルドパスに必要なファイルを配置した後、次のエラーが発生し続けます。私はSpring MVC Hello Worldアプリケーションに取り組んでいます。 Java EE開発者向けにEclipse Heliosを実行しています。

Jan 16, 2012 1:25:42 PM org.Apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /SpringMVCTutorial threw load() exception
Java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    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.StandardWrapper.loadServlet(StandardWrapper.Java:1062)
    at org.Apache.catalina.core.StandardWrapper.load(StandardWrapper.Java:1010)
    at org.Apache.catalina.core.StandardContext.loadOnStartup(StandardContext.Java:4957)
    at org.Apache.catalina.core.StandardContext$3.call(StandardContext.Java:5284)
    at org.Apache.catalina.core.StandardContext$3.call(StandardContext.Java:5279)
    at Java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at Java.util.concurrent.FutureTask.run(Unknown Source)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at Java.lang.Thread.run(Unknown Source)

サーバーを右クリックして「クリーン」をクリックしてみました。アプリケーションを右クリックし、[ビルドパス]、[ビルドパスの構成]の順にクリックし、正しい.jarファイルをライブラリに配置します。ただし、依存関係として認識されません。私は何が欠けていますか?

Eclipse helios:Tomcatプロジェクト-jarはエクスポートまたは公開されません。ランタイムClassNotFoundExceptionsが発生する可能性があります

  1. Webプロジェクトを右クリックします
  2. プロパティをクリック
  3. Java EEモジュールの依存関係を選択
  4. [Webライブラリ]タブをクリックします
  5. 外部jarを追加します(jarがプロジェクトの外部にある場合)。 Jar/Moduleの下にエントリが追加されます。チェックボックス(チェック済み)をクリックしてください。

問題は、「クリックプロパティ」を選択すると、Java EEモジュールの依存関係が表示されないため、クリックするオプションがありません。余分なJava = EEツール、それでも見つけることができません。

32
Mike

OK。だから私はそれを理解しました。 。 。

正しく機能させるには、クラスパス/依存関係にあるファイルをWEB-INF/libファイルに「ドロップアンドドラッグ」する必要があります。

このように動作します。

何らかの理由で正しい方法でやろうとすると

ビルドパス->ビルドパスの構成->外部jar

それはかかりません。

秘Theは、Web App Librariesフォルダーにファイルを配置する必要があり、それを行う唯一の方法(表示される方法)は、WEB-INF/libファイルに「クリックアンドドロップ」することです。

これにより、Webアプリライブラリに自動的に表示されます。

34
Mike

新しいjarファイルを追加すると、EclipseのProblems Tabに2つのメッセージが表示されました。1つはエラー、もう1つは警告です。この問題を解決したのは、以前のすべてのソリューションと追加の手順を組み合わせたときだけです。ここに私がそれを解決した方法があります:

  1. classpath/dependenciesにあるファイルをWEB-INF/libファイルに「ドロップアンドドラッグ」します。
  2. Package Explorerタブでプロジェクトを右クリックし、build path --> configure build path --> external jarsで目的のファイルを追加します。
  3. Eclipseを再起動しました。
  4. Project --> Clean…を選択します。私のシステムは自動的にビルドするように構成されているため、この手順の後、エラーメッセージは消えましたが、警告XXXXXXXXXXX.jar will not be exported or published. Runtime ClassNotFoundExceptions may resultは残りました。
  5. 警告メッセージを右クリック-> Quick Fix;
  6. オプションMark the associated raw classpath entry as a publish/export dependency.を選択します(下図のように) Quick fix for warning message
21
Erick

project Explorerタブでプロジェクトを右クリックし、build path --> configure build path, -->external jars

必要なすべてのjarを追加します。

2
Ramesh Kotha