0

(作業中の) wicket プロジェクトを新しい開発マシンにチェックアウトしたところ、jetty を起動しようとすると突然このエラーが発生します。

java.lang.NoClassDefFoundError: net/unbewaff/Start
Caused by: java.lang.ClassNotFoundException: net.unbewaff.Start
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Exception in thread "main" 

クラスファイルはそこにあり、ファイルを削除するとEclipseが再構築します。見つからないクラスは、実行しようとしているメイン メソッドを含むクラスであり、埋め込まれた桟橋を開始するはずです。ディレクトリにcdしてファイルを表示java Start.classし、コマンドラインに入力しても、わずかに異なる表現で同じエラーが発生します。

Wicket と組み込みの桟橋 - classNotFoundExceptionは関連しているように見えますが、記載されているエラーが後で発生し、Start クラスをロードした後に発生するため、そうではありません。

私がしたこと:

  1. リポジトリからプロジェクトをチェックアウトしました
  2. mvn clean install を実行しました
  3. mvn eclipse:eclipse を実行しました
  4. Eclipseでプロジェクトを作成しました
  5. アプリを起動しようとした
  6. 壁に当たる

正直なところ、これは改札や桟橋の問題ではないと思いますが、どちらも何らかの形で関係しているので、この問題を解決した人がいるといいのですが...

私がチェックしたこと:

  • ファイルは本当にそこにあり、最新で読み取り可能です
  • 運悪くバイトコード呼び出しを調べてみましたjavap Start.class( ERROR:Could not find Start.class)
  • テキストエディタを使用してクラスファイルを開きました(「適切なバイナリ」に見えます)
  • running mvn jetty:run(webapp と一緒に jetty を起動して実行します)

何が役に立ったか:

Martijn が示唆したように、私は新鮮なクイックスタートを入手し、Start クラスを比較しました。クイックスタートのものは問題なく機能し、差分ツールと私が見つけた唯一の違いはコネクタのポートの変更でしたが、クイックスタートのクラスはこれらを問題なく受け入れました。次に、クラスをクイックスタートからプロジェクトにコピーすると、Dummy.java という名前で正常に動作しました。問題のあるクラスを削除し、ワークスペースをクリーンアップして名前を Start.java に変更すると、機能しなくなりました。名前をダミーに戻すと、動作状態に戻ります。

そのため、何が問題なのかまだわかりませんが、回避策がありました。

4

1 に答える 1