2010-06-16 4 views
1

J'ai un problème lors de l'utilisation d'un mdb en tant que composant de couture. Dans le haricot j'injecte d'autres somponents de couture. Le problème est que lorsque le serveur redémarre après une panne et que le mdb est déployé, il commence à lire les messages mais la couture n'est pas encore initialisée et j'ai reçu une exception (listée ci-dessus). Si je démarre le serveur avec les files d'attente vides et que je soumets un message à mettre en file d'attente après le démarrage du serveur, cela fonctionne correctement.problème avec couture et mdb sur jboss5.1

Est-il possible d'arrêter ou de retarder l'envoi de messages au démarrage du serveur et de ne commencer à les envoyer que lorsque la couture est entièrement fonctionnelle?

J'ai essayé le @depends antotatin sur le haricot mais withowt succès

mon environnement: jboss5.1 GA couture 2.2.0 GA messagerie jboss 1.4

Toute aide serait appreceated

l'erreur au démarrage:

11: 24: 20,477 ERROR [TxPolicy] javax.ejb.EJBTransactionRolledbackException: java.lang.IllegalStateException: tentative ed pour appeler un composant Seam en dehors d'une application initialisée

11: 24: 30.483 erreur [TxPolicy] javax.ejb.EJBException: Impossible d'acquérir le sémaphore de la piscine, strictTimeout = 10000

Répondre

1

Trouver la solution I ... a été d'essayer avec le mauvais nom Pattrn avec @depends

Ajouter cette annotation:

@depends ({ "jboss.web.deployment: guerre =/myappname"})

Où myappname est le nom de fichier de guerre de votre application. Cela retardera l'initialisation de la MDB jusqu'à ce que Seam ait fini de s'initialiser pendant le déploiement de la guerre.

Espérons que cela aide quelqu'un