Nous avons une application qui doit effectuer une initialisation à la fin d'un déploiement (dans une instance de JBoss 7.1.0), car c'est seulement à ce moment-là que tous les services requis seront disponibles. sont pas mal d'entre eux).Effectuer des opérations à la fin d'un déploiement JBoss 7
Une approche que nous avons essayé était la suivante:
Nous avons un service singleton avec une annotation @Startup mais nous avons jusqu'à présent pas réussi à dire JBoss pour créer l'instance dernière sans trop de tracas.
Nous pourrions utiliser @DependsOn
mais nous devrons maintenir une liste de dépendances toujours croissante et déjà importante et nous préférerions faire cela en dernier recours.
Autrefois (JBoss 4 et 5), il était possible de définir une dépendance à l'application (comme @Depends("myapp.ear")
), ce qui provoque exactement ce dont nous avons besoin.
A partir de JBoss, 7 choses ont changé mais je suppose qu'il y a encore un moyen de le faire. Une autre approche consistait à essayer de créer notre propre sous-système JBoss qui est appelé après le démarrage de tous les autres sous-systèmes, mais nous n'avons pas réussi à trouver un moyen d'attendre que les autres sous-systèmes terminent les opérations dont nous avons besoin.
Quelles autres options pourrions-nous examiner?
Merci pour cet indice. Cependant, nous avons souvent plus d'un fichier WAR dans notre fichier EAR et nous devrons définir leur ordre de démarrage (ce qui devrait être possible). Dans certains cas, nous n'aurons même pas de fichier WAR et donc pas web.xml. – Thomas
autre chose à considérer pourrait être, vérifier si le service (s) sont disponibles dans une boucle .. ou faire le temps d'initialisation basé, de sorte que la classe de démarrage ou servlet attend x minuts avant de commencer à initialiser .. souvent le déploiement est rapide être juste 1 minute .. un dernier pense pourrait être d'avoir les services s'inscrire eux-mêmes quand prêt (si c'est possible avec les services) ainsi vous pouvez vérifier dans une boucle quand tous les services sont prêts –