7

申し訳ありませんが、私の質問はばかげていますが、Javaの読み書きができないため、答えることができません。CentOS5 (CAS サーバー用) で tomcat (5) を実行し、この URL http://192.168.1.17:8080/cas-server-webapp-3.3.1/loginを開こうとすると、次のエラーが発生します。

最初のエラー: java.lang.NoClassDefFoundError: クラスorg.springframework.webflow.util.RandomGuidを初期化できませんでした

およびルート エラー: org.springframework.web.util.NestedServletException: ハンドラーの処理に失敗しました。ネストされた例外は java.lang.NoClassDefFoundError: Could not initialize クラス org.springframework.webflow.util.RandomGuid です

$CLASSPATH が空っぽで、問題ありそうなのですが、何を入れたらいいのかわかりません。

編集: Jared は正しく、私のホスト ファイルは 127.0.0.1 を localhost として定義しましたが、今では非常にうまく機能しています!

4

5 に答える 5

25

この場合、2つまたは3つの異なる例外を頭の中でまっすぐに保つことが重要です。

  1. java.lang.ClassNotFoundException この例外は、クラスがクラスパスで見つからなかったことを示します。これは、クラス定義を読み込もうとしていて、クラスがクラスパスに存在しなかったことを示しています。

  2. java.lang.NoClassDefFoundError この例外は、JVMが内部クラス定義データ構造でクラスの定義を調べたが、見つからなかったことを示しています。これは、クラスパスからロードできなかったということとは異なります。通常、これは、以前にクラスパスからクラスを読み込もうとしたことを示していますが、何らかの理由で失敗しました。今は再試行していますが、以前に読み込めなかったため、読み込もうとはしていません。以前の失敗は、ClassNotFoundExceptionまたはExceptionInInitializerError(静的初期化ブロックの失敗を示す)またはその他の問題である可能性があります。重要なのは、NoClassDefFoundErrorは必ずしもクラスパスの問題ではないということです。

そうは言っても、別の回答ポスターは、R​​andomGUIDがInetAddress.getLocalHost()の呼び出しを必要とすることを示しています。多くのオペレーティングシステムでは、これにより、hostsファイルを使用するホストルックアップがトリガー/etc/hostsされます(* NIXシステム、%WINDOWS%/system32/drivers/etc/HOSTSWindowsシステム)。

そのファイルがローカルホストアドレスを誤って定義している場合、同様のエラーが頻繁に発生します。 127.0.0.1'localhost'を指す必要があります(おそらくまたlocalhost.localdomain。)マシンの実際のホスト名を指すべきではありません(ただし、何らかの理由で、多くの古いRedHat Linuxインストーラーは誤って設定することを好みました)。

于 2009-01-12T18:55:08.343 に答える
0

これが突然、構築していたものに非論理的に現れた場合は、エラー ログで参照されているクラスの名前を変更し、元の名前に戻してみてください。これは、Netbeans で何度か役に立ちました。

于 2012-02-08T18:33:48.650 に答える