即使更新了新文件,JBoss 部署仍会使用旧版本的文件

即使更新了新文件,JBoss 部署仍会使用旧版本的文件

我们部署的 Web 服务出现了问题;用户无法登录,我们的日志显示了错误和异常堆栈跟踪。开发人员解决了这个问题并提供了一个新的软件包来部署。

当我部署新软件包并尝试使用它时,我们仍然得到与我们之前得到的完全相同的错误和异常堆栈跟踪,直到堆栈跟踪中的相同文件/行号。一些行号甚至没有指向任何可能导致错误的内容,而是指向曾经包含导致错误的有问题行的行号上的空格。

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

重新启动 JBoss,同样的事情,取消部署/重新部署,同样的事情。

取消部署,将导致错误的文件移至“file.jar.bak”,使其“不存在”,然后重新部署……部署失败(很好,此时应该如此)——现在出现无法部署的错误,因为找不到文件。好的,这很好,至少它注意到了我正在更改文件的事实。但是现在将“file.jar.bak”移回“file.jar”并再次重新部署,它再次提供与旧部署相同的错误/行号,而不是新部署!

发生了什么事???也许旧的缓存在某处?还有什么原因可能导致这种情况。

答案1

我现在觉得自己很蠢。在输入我的问题后,在思考和编辑它时,我突然想到了一些办法,然后我修复了它。无论如何,我还是会发布它,并分享我的愚蠢错误,希望它能帮助到其他人……

我们正处于从 JBoss 5 迁移到较新版本的最后阶段。较新版本对于如何构建“ear”档案中的某些目录结构或文件更加严格。我们的 jar 文件过去位于档案的根目录中,但为了满足新的更严格的指导方针,它们应该位于档案内的“lib/”目录中,而不仅仅是档案的根目录中。

好吧,lib 目录已经创建,jar 文件也放在那里了——甚至是我创建的——但是这些文件复制, 不是已移动。因此,根目录中有 jar 文件的副本,lib/ 目录中也有 jar 文件的副本。我们一直在覆盖根目录中的副本,这就是为什么我们的更改被忽略的原因,因为它使用的是 lib/ 中的正确副本。

相关内容