2017-08-17 2 views
1

J'ai trouvé que Hotswapagent fonctionne différemment dans les applications SE et EE. Dans l'application SE, je peux ajouter une nouvelle propriété à la classe (par exemple Long Long x;) sans aucun problème, Hotswap peut mettre à jour le code. Mais je ne suis pas capable de le faire dans mon application EE dans un JSF ManagedBean, j'ai obtenu "La machine virtuelle ne supporte pas cette opération: les changements de schéma ne sont pas implémentés".Agent Hotswap dans Java SE et Java EE

Mon application EE est une application Maven Enterprise (projets ejb, web, ear) dans Netbeans 8.2 avec Wildfly 10. J'utilise DCEVM (jdk1.8.0_112) et Hotswapagent 1.1.0.

Les modifications de code simples (par exemple, corps de méthode d'édition) fonctionnent à la fois dans les applications SE et EE, mais elles ne peuvent gérer aucune nouvelle propriété ni dans ejb ni dans un projet Web. Je voudrais savoir si j'ai fait une erreur dans les paramètres ou c'est parce que les différences entre les environnements SE et EE. Merci pour vos idées.

Répondre

0

Il n'y a pas de problème avec cela. Seulement quand je commence l'application en mode debug.

0

Je m'attendrais à ce que l'ajout d'un champ soit considéré comme une modification de schéma (dans ce cas, vous obtiendrez l'exception dans Java SE et Java EE). Mais Java EE est spécifique par la modification des classes (bytecode) à l'exécution. Je suppose que lorsque vous avez inséré un champ, ce n'est pas seulement ce champ qui a été ajouté, mais aussi un getter et/ou setter synthétique qui a été introduit, ce qui était un changement de schéma à coup sûr.