Eclipse Kepler et JBoss Wildfly hot deployment

j'essaie d'utiliser eclipse kepler pour Java EE 7.J'ai déjà installé les outils JBoss et ajouté JBoss Wildfly avec succès en tant que serveur. Toutefois, mes modifications ne sont pas automatiquement déployé. Est-il de toute façon l'application peut être déployée automatiquement tout comme lors de l'utilisation de glassfish?

18
demandé sur zulqarnain 2013-11-26 13:28:59

5 réponses

en utilisant Eclipse, cliquez deux fois sur votre serveur WildFly pour éditer les propriétés suivantes:

  1. édition: choisissez "publier Automatiquement après un événement de construction". J'aimerai changer la publication de l'intervalle de 1 seconde de trop.
  2. Application De Rechargement De Comportement: cochez la case " personnaliser la recharge de l'application ..."cochez la case et modifiez le motif regex à \.jar$|\.class$

C'est ça. Bonne chance!

26
répondu varantes 2014-02-25 18:30:01

les deux @varantes et @Sean sont essentiellement corrects, mais ces réponses ne sont pas complètes.

malheureusement, la seule façon dans un environnement serveur java d'avoir un déploiement à chaud complet, zéro temps d'arrêt est d'utiliser payed JRebel ou gratuit ressort outil.

mais pour les petits projets, il y a des moyens d'accélérer le travail par un déploiement à chaud partiel. Essentiellement:

  1. lorsque l'option est activée publier automatiquement quand Changement des ressources ensuite, des changements à l'intérieur *.html,*.xhtml les fichiers sont immédiatement traduire dès que vous actualisez le navigateur.
  2. Pour faire de déploiement à chaud de travail pour *.jsp fichiers trop, alors vous devriez à l'intérieur de ${wildfly-home}/autonome/configuration/autonome.xml faire des modification suivante:

    <jsp-config/>

    remplacer par:

    <jsp-config development="true"/>

redémarrez le serveur et profitez du déploiement à chaud des fichiers web.


mais en modifiant *.java fichiers source, alors seul un déploiement partiel est possible.

Comme @varantes l'a déclaré dans sa réponse, permettre Application De Rechargement De Comportement avec le motif regex réglé à \.jar$|\.class$ est une option, mais a de sérieux inconvénients: tout le module est redémarré, donc:

  1. cela prend du temps (selon la taille du module).
  2. état de la demande complète est perdu.

personnellement, je décourage cette solution.

JVM supporte (en mode debug) le changement de code pour les corps de méthodes. Aussi longtemps que vous ne modifiez que les méthodes existantes, vous êtes chez vous (aucun temps d'arrêt, les changements se répercutent immédiatement). Mais vous devez désactiver la publication automatique dans les paramètres du serveur sinon l'état de l'application sera toujours détruit par cette nouvelle publication.

mais si vous fabriquez beaucoup de code java (ajout de classes, annotations, constructeurs) alors malheureusement je ne peux que recommander set publishing dans ne Jamais publier automatiquement (OU shutdown server) et lorsque vous terminez votre travail dans les fichiers java, puis redémarrez à la main votre module (ou serveur activé). Jusqu'à vous.


il fonctionne pour les petits projets java, mais pour les plus grands, JRebel est inestimable (ou tout simplement spring-loaded), parce que toutes les approches décrites ci-dessus ne sont pas suffisant.

BTW: aussi à cause de ces problèmes, des solutions comme Rails/Django/Play! Framework a gagné tellement de popularité.

bonne chance et codage rapide!

21
répondu G. Demecki 2016-03-02 23:11:20

je suppose que vous utilisez la dernière version de Wildfly (8.0 Beta 1 au moment de l'écriture).

Dans la version autonome.fichier de configuration xml, rechercher . Ajouter l'attribut développement="true" et il devrait chaude-déployer. La configuration résultante ressemblera à ceci:

<jsp-config development="true"/>
8
répondu umphy 2013-12-01 23:49:04

Ajouter des attributs (développement, enregistrement à intervalle, la modification des essais intervalle, recompiler-sur-échec) dans le fichier de configuration dans xPath = //servlet-conteneur/jsp-config/

<servlet-container name="default" default-buffer-cache="default" stack-trace-on-error="local-only">
    <jsp-config development="true" check-interval="1" modification-test-interval="1" recompile-on-fail="true"/>
</servlet-container>

(Il travaille dans WildFly-8.0.0.Final)

4
répondu PeterB 2014-02-12 15:22:54

démarrer le serveur en mode debug et il va suivre les chances à l'intérieur des méthodes. Autres modifications il demandera de redémarrer le serveur.

0
répondu erickdeoliveiraleal 2017-01-21 15:58:16