2017-08-17 15 views
1

Hotswapagentは、SEアプリケーションとEEアプリケーションで異なる方法で動作することがわかりました。 SEアプリケーションでは、クラスに新しいプロパティ(例:private Long x;)を問題なく追加できます。Hotswapはコードを更新できます。しかし、私はJSF ManagedBeanのEEアプリケーションでこれを行うことができません。"仮想マシンはこの操作をサポートしていません:スキーマの変更は実装されていません"Java SEとJava EEでのHotswapエージェント

私のEEアプリケーションは、Netbeans 8.2のMavenエンタープライズアプリケーション(ejb、web、earプロジェクト)で、Wildfly 10を使用しています。私はDCEVM(jdk1.8.0_112)とHotswapagent 1.1.0を使用します。

SEとEEアプリケーションの両方で単純なコード変更(たとえばメソッド本体の編集)は動作しますが、ejbやWebプロジェクトでは新しいプロパティの作成を処理できません。 SEE環境とEE環境の違いが原因で設定が間違っているかどうかを知りたいです。任意のアイデアをありがとう。

答えて

0

問題はありません。デバッグモードでアプリケーションを起動したときのみ。

0

フィールドの追加がスキーマ変更と見なされることが予想されます(このような場合、Java SEとJava EEの両方で例外が発生します)。しかし、Java EEは実行時にクラス(バイトコード)を変更することによって特有です。私はあなたがフィールドを挿入したとき、追加されたのはそのフィールドだけではなく、いくつかの合成ゲッターやセッターが導入されたことを確かめました。