2017-08-17 48 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,這當然是一種模式更改。