在 NetBeans 中使用 JRebel

Using JRebel in NetBeans

我在 WildFly 10.0.0 final 上有一个 Java EE 应用程序 运行 具有以下结构图(它不使用 Apache Maven)。

我正在为 NetBeans (8.1) 使用 JRebel 6.4.1。它在 Web 应用程序(因此不是企业应用程序)中运行良好,但在企业应用程序中,IDE 不断显示以下消息,“打开项目属性以设置远程服务器”,当对 EE 模块或 class 库(如上图所示)中的 Java 文件的更改同步时。

当对 Web 模块的更改同步时,不会出现该消息。

尽管有消息,但对 EE 模块所做的更改会在模块同步时传播,但对 class 库的更改不会在同步时传播。

JRebel 远程服务器当前已关闭,因为该应用程序在本地主机上运行。是否需要在项目属性对话框中设置服务器 URL?在那种情况下,URL 是什么?

如果我遗漏了什么,还有其他建议吗?

您是否偶然使用了工具栏上的同步按钮?如果您不使用远程服务器功能,则不需要按它,因为您正确地指出服务器在本地主机上是 运行。对 class 文件的更改直接从文件系统中获取,由于每个工件中的 rebel.xml,连接到服务器的 JRebel 代理可以找到更新的 classes。

此外,由于 8.1 NetBeans 在项目为 运行(至少对于独立项目)时不一定会更新保存在构建目录中的 class 文件,因此请验证 classes 会更新,不管复选框怎么说。如果 class 文件没有得到更新,NetBeans 编译器中也有问题,在他们的 FAQ 中模糊地描述了,这实际上意味着 NetBeans 不会自动编译旧的 classes 如果现有的 classes 不是由内部编译器编译的,而是由 Ant 或 Maven 完成的。解决它的技巧是:

  • 执行 Clean 删除现有的 classes 然后 运行 让 NB 使用内部编译器[=28] 构建 classes =]
  • build/classestarget/classes 文件夹中创建名为 .netbeans_automatic_build 的空文件

如前所述,如果这没有帮助,请联系支持@zeroturnaround.com。为了加快速度,在重现问题后,根据 manual 向他们发送跟踪级别 jrebel.log,您尝试重新加载的 class 名称以及 link所以问题。