2017-08-17 49 views
1

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

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

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

回答

0

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

0

我希望增加一个字段被视为模式更改(在这种情况下,您将在Java SE和Java EE中都得到异常)。但是,Java EE在运行时通过修改类(字节码)而具体化。我想,当你插入一个字段时,并不仅仅是该字段添加了什么内容,而且还引入了一些合成的getter和/或setter,这当然是一种模式更改。