即使在更新新文件後,JBoss 部署仍會使用舊版的文件

即使在更新新文件後,JBoss 部署仍會使用舊版的文件

我們部署的 Web 服務出現問題;用戶無法登錄,我們的日誌顯示錯誤和異常堆疊追蹤。 Dev 解決了這個問題並提供了一個新的套件來部署。

當我部署新套件並嘗試使用它時,我們仍然得到與我們之前得到的錯誤和異常堆疊追蹤完全相同,一直到堆疊追蹤中的相同檔案/行號。有些行號甚至不指向任何可能導致錯誤的內容,而是指向行號上的空白,該行號曾經包含導致錯誤的有問題的行。

取消部署/重新部署,同樣的事情。

重新啟動 JBoss,同樣的事情,取消部署/重新部署,同樣的事情。

取消部署,將導致錯誤的文件移動到“file.jar.bak”,使其“不存在”,然後重新部署...部署失敗(很好,應該在這一點上) - 現在出現一個錯誤由於找不到該文件,因此無法部署。好吧,這樣也好,至少它有關注我在改文件了。但現在將「file.jar.bak」移回「file.jar」並再次重新部署,它又會再次提供與舊部署相同的錯誤/行號,而不是新部署!

到底是怎麼回事?也許舊的緩存在某處?還有什麼可能導致這種情況。

答案1

我現在感覺自己很蠢。輸入我的問題後,在思考和編輯它的同時,我突然明白了一些事情,然後我解決了它。無論如何,我仍然會發布它,並分享我的愚蠢錯誤,以防它對其他人有所幫助...

我們正處於從 JBoss 5 遷移到更新版本的最後階段。較新的版本對於如何建立「ear」檔案中的某些目錄結構或檔案更加嚴格。我們的 jar 檔案曾經位於已存檔的根目錄中,但為了滿足新的更嚴格的準則,它們應該位於存檔中的「lib/」目錄中,而不僅僅是位於其根目錄中。

好吧,lib 目錄已創建,jar 檔案也放在那裡 - 甚至是我的 - 但檔案是複製的, 不是搬家了。因此,根目錄中有 jar 檔案的副本,lib/ 目錄中有 jar 檔案的副本。我們不斷覆蓋根目錄中的副本,這就是我們的更改被忽略的原因,因為它使用了 lib/ 中的正確副本。

相關內容