首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java SE和Java EE中的热交换代理

Java SE和Java EE中的热交换代理
EN

Stack Overflow用户
提问于 2017-08-17 18:25:23
回答 4查看 494关注 0票数 1

我发现Hotswapagent在SE和EE应用程序中的工作方式不同。在SE应用程序中,我可以向类添加一个新属性(例如,私有Long x;),而不存在任何问题,Hotswap可以更新代码。但是我无法在JSF中的EE应用程序中做到这一点,我得到了“虚拟机不支持此操作:模式更改未实现”。

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

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

EN

回答 4

Stack Overflow用户

发布于 2017-08-18 13:37:44

这没什么问题。只有在我以调试模式启动应用程序时。

票数 0
EN

Stack Overflow用户

发布于 2017-10-05 19:21:11

我希望添加一个字段将被视为模式更改(在这种情况下,您将得到Java和Java中的异常)。但是Java是通过在运行时修改类(字节码)来指定的。我想,当您插入一个字段时,不仅仅是添加了这个字段,还引入了一些合成的getter和/或setter,这无疑是一种模式更改。

票数 0
EN

Stack Overflow用户

发布于 2018-05-16 18:42:17

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45742511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档