
展開した Web サービスに問題が発生し、ユーザーはログインできず、ログにはエラーと例外のスタック トレースが表示されました。開発チームは問題に取り組み、展開する新しいパッケージを提供しました。
新しいパッケージを展開して使用しようとすると、まだ以前と同じエラーと例外スタックトレースが表示されますスタック トレース内の同じファイル/行番号にまで及びます。行番号の中には、エラーの原因となる可能性のあるものを指し示していないものもあり、むしろ、エラーの原因となった問題のある行があった行番号の空白を指し示しています。
アンデプロイ/再デプロイは同じです。
JBoss を再起動しても同じ結果になり、アンデプロイ/再デプロイしても同じ結果になります。
アンデプロイし、エラーの原因となるファイルを「file.jar.bak」に移動して「存在しない」状態にしてから、再デプロイします... デプロイは失敗します (この時点では失敗しないはずです) - ファイルが見つからないためデプロイできないというエラーが表示されます。 OK、これは問題ありません。少なくとも、ファイルを変更しているという事実は認識されています。 しかし、「file.jar.bak」を「file.jar」に戻して再度デプロイすると、新しいデプロイメントではなく、古いデプロイメントと同じエラー/行番号が表示されます。
何が起こっているのでしょうか? 古いものがどこかにキャッシュされているのでしょうか? 他に何が原因として考えられますか。
答え1
はぁ自分がバカだったと感じています。質問を入力し、考えながら編集していたところ、突然何かが思い浮かび、修正しました。それでも投稿して、他の人の役に立つかもしれないので、自分のバカなミスが何だったのかを共有します...
JBoss 5 から新しいバージョンへの移行は最終段階にあります。新しいバージョンでは、「ear」アーカイブ内の特定のディレクトリ構造やファイルの構造化方法がより厳格になっています。以前は jar ファイルはアーカイブのルートにありました。しかし、新しいより厳格なガイドラインを満たすために、jar ファイルはアーカイブのルートだけではなく、アーカイブ内の「lib/」ディレクトリに置くことになっています。
libディレクトリが作成され、jarファイルがそこに置かれました(私が作成したものですが)が、ファイルはコピーしました、 ない移動したそのため、ルートには jar ファイルのコピーがあり、lib/ ディレクトリにも jar ファイルのコピーがありました。ルート ディレクトリのコピーを上書きし続けていたため、lib/ の正しいコピーが使用されていたため、変更が無視されていました。