6

我正在运行 JBoss 4.0.3.SP1_CP04 并使用 Eclipse 3.4.1 的调试器连接到它,两者都使用 JDK 1.6.0_11。

当我对一个方法进行微小的更改(例如将逻辑中的“+ 1”更改为“+ 2”)并保存它时,我立即收到一个标题为“热代码替换失败”的错误消息对话框,错误为“删除方法未实现”

热代码替换失败对话框 http://img6.imageshack.us/img6/531/hotcodereplacefailedkp6.png

任何人都可以建议让这个工作的步骤吗?

4

6 回答 6

4

您想要做的是将 JBOSS 作为爆炸 WAR部署到 JBOSS 。通常,如果编辑器自己进行初始部署,它将在单个文件更改时管理复制它们。

在 IntelliJ 中,这很容易。我从来没有在 Eclipse 上做过,但是这个项目是你最好的选择。

于 2009-02-11T19:50:48.597 回答
2

我一直在使用JRebel,就修改代码和动态更新应用服务器而言,它是一个救命稻草。第一天自己付钱。(我们有一个 7 分钟的编译/部署/重启周期)

于 2009-02-11T23:44:56.427 回答
1
  1. 在 Eclipse 中运行调试器之前,确保您的工作区中的所有项目都已刷新(如果代码在 Eclipse 之外更改,则需要这样做,例如在使用外部工具从版本控制系统获取更改之后)
  2. 在 Eclipse 的 Java 构建路径中,确保您不包含作为您尝试热交换的某些库类的一部分
  3. 检查 Eclipse JRE = JBoss JRE
  4. 检查您尝试热交换的类。它有内部类吗?当我无法将类与内部类交换时,我遇到了问题,而其他类交换时没有问题。
于 2011-06-15T16:08:18.853 回答
1

原因是程序集可以使用另一个编译器即热插拔。例如,如果您通过 maven 构建项目,我们使用 javac。当您尝试执行热插拔时,etslipse 使用内置编译器 jdt 编译器(编译器不是从已安装的 jdk 中获取的,并且不能通过常规方式更改。)。得到的二进制类不同,jvm无法替代。

于 2012-07-18T13:26:19.053 回答
0

What you described should work. What are your jvm args to jboss to enable debugging?

Mine are these: -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

于 2009-02-12T14:49:27.110 回答
0

我遇到了一个问题,即热代码替换本身不起作用。我们做了一些更改,例如确保选中“自动构建”并取消选中 -“发生构建路径错误时中止构建”。但就我而言,HCR 本身不起作用。我没有收到你提到的消息。更多详细信息在此链接中。 https://sites.google.com/site/javaerrorsandsolutions/home/hot-code-replacement

于 2010-11-19T10:48:31.630 回答