J'essaie d'utiliser Eclipse Kepler pour Java EE 7. J'ai déjà installé JBoss Tools et ajouté JBoss Wildfly en tant que serveur. Cependant, mes modifications ne sont pas automatiquement déployées. Existe-t-il de toute façon une application pouvant être déployée automatiquement, exactement comme avec Glassfish?
À l’aide d’Eclipse, cliquez deux fois sur votre serveur WildFly pour modifier les propriétés suivantes:
\.jar$|\.class$
C'est tout. Bonne chance!
@Varantes et @Sean sont essentiellement corrects, mais ces réponses ne sont pas complètes.
Malheureusement, dans un environnement de serveur Java, le seul moyen de déployer à chaud un déploiement à chaud sans interruption est d'utiliser l'outil payant { JRebel ou gratuit à ressort .
Mais pour les petits projets, il existe quelques moyens d'accélérer le travail en déployant partiellement à chaud. Essentiellement:
*.html
, les fichiers *.xhtml
sont immédiatement reflétés dès que vous actualisez le navigateur.*.jsp
, vous devez alors Inside $ {wildfly-home} /standalone/configuration/standalone.xml Apporter les modifications suivantes:<jsp-config/>
<jsp-config development="true"/>
redémarrez le serveur et profitez du déploiement à chaud des fichiers Web.
Mais lors de la modification des fichiers source *.Java
, seul un déploiement à chaud partiel est possible.
Comme @varantes l'a indiqué dans sa réponse, l'activation de Application Reload Behavior avec le motif regex défini sur \.jar$|\.class$
est une option, mais présente de graves inconvénients: tout le module est redémarré, ainsi:
Donc, personnellement, je décourage cette solution.
JVM prend en charge (en mode débogage) l’échange de code pour le corps des méthodes. Ainsi, tant que vous ne modifiez que les corps de méthodes existantes, vous êtes chez vous (temps d'indisponibilité nul, les modifications sont immédiatement répercutées). Cependant, 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 craignez énormément le code Java (ajout de classes, d’annotations, de constructeurs), malheureusement, je ne peux que recommander de définir la publication dans Ne jamais publier automatiquement (ou d’arrêter le serveur). remettez votre module (ou votre serveur allumé). Dépend de vous.
Cela fonctionne pour de petits projets Java, mais pour de plus grands projets, JRebel est inestimable (ou juste à ressort), car toutes les approches décrites ci-dessus ne sont pas suffisantes.
BTW: également à cause de tels problèmes, des solutions telles que Rails
/Django
/Play! Framework
ont acquis une telle popularité.
Bonne chance et codage rapide!
Je suppose que vous utilisez la dernière version de Wildfly (8.0 Beta 1 à la date de rédaction).
Dans le fichier de configuration standalone.xml, recherchez <jsp-config /> . Ajoutez l'attribut development = "true" et il devrait être déployé à chaud. La configuration résultante ressemblera à ceci:
<jsp-config development="true"/>
Ajouter des attributs (développement, intervalle de contrôle, intervalle de modification-test, recompilation sur échec) dans le fichier de configuration dans xPath = // servlet-container/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>
(Cela fonctionne dans WildFly-8.0.0.Final)
Démarrez le serveur en mode débogage et il suivra les chances à l’intérieur des méthodes. Autres modifications Il vous sera demandé de redémarrer le serveur.