/ / MDB (Message Driven Bean) schlägt beim Serverstart fehl - Java, Glassfish, JMS, Glassfish-4, Message-Driven-Bean

MDB (Message Driven Bean) schlägt beim Start des Servers fehl - Java, Glassfish, JMS, Glassfish-4, Message-Driven-Bean

Mehrere Personen scheinen das gleiche Problem zu haben (siehe Dies und Dies):

Wenn Sie einen glassfish (v 4) Server mit einemMDB (Message Driven Bean) Wenn Nachrichten verarbeitet werden müssen, beginnt die MDB mit der Verarbeitung der Nachrichten, während der Container noch initialisiert wird. Wenn für die Nachrichtenverarbeitung ein anderer Dienst aus dem Container benötigt wird, wird eine Ausnahme ausgelöst:

Caused by: javax.ejb.EJBException: Attempt to invoke when container is in Initializing

Hat es jemand geschafft, dieses Problem zu lösen?

Im Idealfall sollte die MDB die Nachrichten erst verbrauchen, nachdem der Container vollständig initialisiert wurde.

Gibt es eine Möglichkeit, die MDB auf Containerinitialisierung überprüfen zu lassen und erst dann Nachrichten zu akzeptieren, wenn der Container aktiv ist?

Bearbeiten: Vielleicht hilft folgende Annotation: @DependsOn ("Dependency")

Antworten:

0 für die Antwort № 1

Sie können die Ladereihenfolge der Anwendung (Startreihenfolge) konfigurieren, einen höheren Wert für Ihre Anwendung festlegen und möglicherweise eine verzögerte Anwendung voranstellen.