5

以下のことがランダムに起こる理由について、そこにいるグルがアイデアを流せるかどうか疑問に思っています.

JRE 1.7_03 を使用した Linux インストールで実行されている Jetty 6.1.26 にデプロイする Web アプリケーションがあります。

毎回ではありませんが、時々、Jetty の起動時に (私たちのプロジェクトからの) ランダムなクラスのように見えるものが、NoClassDefFound エラーの原因のようです。Jetty を再起動すると、問題はなくなります。

発生する唯一のパターンは、エラーのルートにあるクラスが JAXB アノテーションを介して取り込まれているようです。

周波数のより多くの考えを与えるために、これが1/50回起こると感じます。

このエラーの方法と理由を知りたいです。

4

1 に答える 1

1

これが役立つかどうかはわかりませんが、Jetty8とjava6でアノテーションの問題が発生しました。簡単に言うと、そのバージョンでのアノテーション処理は、バイトコード検査などのlibasmに依存しているようです。だから私たちは注意しなければなりません

  • クラスをコンパイルするもの(例:JDKバージョンなど)
  • 依存関係を通じて複数のasm/javassistライブラリをプルして、間違ったライブラリをロードしてしまうことはありません。

Jetty 6とJaxbがアノテーションを処理する方法に精通していませんが、実際には、両方をJava7で実行できることに驚いています。Java6でコードを実行してみてください。

于 2012-10-17T12:57:47.847 に答える