即使更新了新文件,JBoss 部署仍繼續使用舊版本的文件
我們部署的 Web 服務出現問題;使用者無法登錄,我們的日誌顯示錯誤和異常堆棧跟踪。Dev 解決了這個問題並提供了一個新的包來部署。
當我部署新包並嘗試使用它時,我們仍然得到*與之前完全相同的錯誤和異常堆棧跟踪,*一直到堆棧跟踪中的相同文件/行號。一些行號甚至不指向任何可能導致錯誤的東西,而是指向行號上的空白,該行號曾經有導致錯誤的有問題的行。
取消部署/重新部署,同樣的事情。
重新啟動 JBoss,同樣的事情,取消部署/重新部署,同樣的事情。
取消部署,將導致錯誤的文件移動到“file.jar.bak”,使其“不存在”,然後重新部署……部署失敗(很好,此時應該) - 現在有一個錯誤它無法部署,因為找不到文件。好的,那很好,至少它正在關注我正在更改文件的事實。但是現在將“file.jar.bak”移回“file.jar”並再次重新部署,它再次提供與舊部署相同的錯誤/行號,而不是新部署!
到底是怎麼回事???也許舊的記憶體在某個地方?還有什麼可能導致這種情況。
嘆息我現在感覺很笨。在輸入我的問題後,在思考和編輯它的同時,我突然想到了什麼,我修復了它。無論如何,我仍然會發布它,並分享我的愚蠢錯誤,以防它幫助其他人……
我們正處於從 JBoss 5 遷移到更新版本的最後階段。較新的版本對如何建構“ear”檔案中的某些目錄結構或文件更加嚴格。我們的 jar 文件曾經位於存檔的根目錄,但為了滿足新的更嚴格的準則,它們應該位於存檔的“lib/”目錄中,而不是僅位於存檔的根目錄中。
好吧,創建了 lib 目錄,並且將 jar 文件放在了那裡——甚至是我——但文件被複製了,而不是移動了。所以根目錄下有 jar 文件的副本,而 lib/ 目錄下有 jar 文件的副本。我們一直在覆蓋根目錄中的副本,這就是我們的更改被忽略的原因,因為它在 lib/.