1

我发现 Hotswapagent 在 SE 和 EE 应用程序中的工作方式不同。在 SE 应用程序中,我可以毫无问题地向类添加新属性(例如 private Long x;),Hotswap 可以更新代码。但是我无法在 JSF ManagedBean 的 EE 应用程序中执行此操作,我得到“虚拟机不支持此操作:未实现架构更改”

我的 EE 应用程序是带有 Wildfly 10 的 Netbeans 8.2 中的 Maven 企业应用程序(ejb、web、ear 项目)。我使用 DCEVM (jdk1.8.0_112) 和 Hotswapagent 1.1.0。

简单的代码更改(例如编辑方法主体)在 SE 和 EE 应用程序中都有效,但它不能在 ejb 和 web 项目中处理新属性的创建。我想知道我是否在设置上犯了一些错误,或者这是因为 SE 和 EE 环境之间的差异。感谢您的任何想法。

4

4 回答 4

0

HotswapAgent工作在 JVM 级别,Java SE 和 Java EE 应该没有区别。很可能您的 Wildfly 服务器不使用 DCEVM,请检查您的设置。

于 2018-05-16T18:42:17.290 回答
0

没有问题。只有当我在调试模式下启动应用程序时。

于 2017-08-18T13:37:44.120 回答
0

这里有所有你需要知道的来配置任何 EE 应用服务器 Payara + DCEVM 配置

于 2019-07-25T17:22:18.430 回答
0

我希望添加一个字段被视为模式更改(在这种情况下,Java SE 和 Java EE 都会出现异常)。但是 Java EE 是通过在运行时修改类(字节码)来实现的。我猜当您插入一个字段时,不仅添加了该字段,还引入了一些合成的 getter 和/或 setter,这肯定是架构更改。

于 2017-10-05T19:21:11.293 回答