【问题标题】:How to enable Hot deployment in JBoss using Redhat server connector extension in VSCode如何在 VSCode 中使用 Redhat 服务器连接器扩展在 JBoss 中启用热部署
【发布时间】:2026-02-13 19:30:02
【问题描述】:

我在 VSCode 中制作了一个基于 maven 的小型 Web 应用程序,并尝试使用 Redhat Server Connector Extension 在 JBoss 上部署它。

但是类文件的热部署在简单运行的JBoss服务器上是不行的。

但是通过将属性 'java.debug.settings.hotCodeReplace' 设置为 'auto',热部署确实在调试模式下作为“热代码替换”工作。

我的输入来自以下链接:

https://devblogs.microsoft.com/visualstudio/hot-code-replacement-for-java-comes-to-visual-studio-code/

和其他 SO 链接,例如: How do I get Java "hot code replacement" working in JBoss?

Hot deploy on JBoss - how do I make JBoss "see" the change?

但这无济于事。

您能否就如何简单地运行 JBoss 提出更多建议?

(PS:VSCode 中的 Auto Build 功能已经开启。

而且它在 Eclipse 中运行良好)。

【问题讨论】:

  • 请发送 server.log
  • 这似乎更像是 VSCode 上的一个特性,而不是 EAP 上的问题,server.log 可以显示这一点。
  • 更改类时,server.log 中没有任何内容。它保持不变。我认为这就是问题所在,当类发生变化时,jboss 永远不会被通知。是的,这可能是 VSCode 的特性,但它是一个约束,我们不能改变它。?
  • 如果server.log上没有异常,很可能说明服务器没有问题。因此,这几乎与 VSCode 相关。需要深入了解“java.debug.settings.hotCodeReplace”到“auto”会发生什么,因为这可能是一个错误。

标签: java visual-studio-code jboss redhat


【解决方案1】:

在 VSCode 的集成 RedHat Server 连接器中热部署 Web 应用程序可以通过以下方式进行:

  • Exploded war folder:从原始战争中提取一个文件夹,并使用 Exploded 选项部署到 JBoss。在这里,jsps和HTML的变化等静态变化会自动反映在正在运行的应用程序中。

  • Hot code Replacement:热代码替换 (HCR) 是一种快速调试技术,其中 Java 调试器通过 debugging 通道将新的类文件传输到另一个 JVM。 HCR 仅在类签名不变时起作用;使用 HCR 时,您不能删除或向现有类添加字段。但是,HCR 可用于更改方法的主体。 (来源:https://devblogs.microsoft.com/visualstudio/hot-code-replacement-for-java-comes-to-visual-studio-code/

  • Maven Install/build:这实际上不是人们想要的首选技术,但它也很有用。在此技术中,您运行 maven: install 再次构建项目并将其再次安装到服务器上。

目前,与 Eclipse 等已经可用的 IDE 相比,Java 的 VSCode 和服务器连接器扩展是新的。因此,我们可能会期待在未来的更强大的功能。

【讨论】:

  • 你好,你能解释一下“爆炸战争文件夹”的过程吗?在 Eclipse 中,它是自动完成的:当 JSP 文件发生更改时,它会自动发布到爆炸的 war 文件夹中。到目前为止我所做的是将我的应用程序的目标文件夹设置为爆炸的战争目录。但我似乎无法对文件进行 VSCode 自动发布修改
最近更新 更多