コンテキストは次のとおりです。すべての静的メソッドと静的初期化ブロックを持つクラスがあります。このクラスは、war としてパックされ、WebSphere 10 内にデプロイされる Web アプリケーションの一部です。
戦争中の他のクラスがこのクラスのメソッドを呼び出そうとする状況がありますが、NoClassDefFoundError を取得するだけです。私が奇妙だと思うのは、ログから、クラスのメソッドなどがすでに複数回正常に呼び出されていることがわかりますが、突然、同一の (以前は成功した) メソッド呼び出しが現在 NoClassDefFoundError を生成することです。この時点で、クラスの静的メソッドへのそのような呼び出しは、(WebSpehere コンテナーが再起動されるか、war が再デプロイされるまで) そのエラーを生成します。
私を困惑させているのは、クラスが NoClassDefFoundError をスローする前にしばらくの間機能しているように見える理由です。この例外に関するドキュメントには、次のように記載されています。
検索対象のクラス定義は、現在実行中のクラスがコンパイルされたときに存在していましたが、その定義が見つからなくなりました。
だから私の質問は、クラスがしばらくの間使用可能で、静的メソッドの呼び出しに明確に応答し、NoClassDefFoundError をスローするのはなぜですか?