2012-04-14 11 views
0

Ich frage mich, wie eine Nachricht (javax.jms.Message) von einem MySatefulSessionBean zu MySingletonBean und MyMessageDrivenBean dann zu senden. Ich verwende Netbeans, so kann ich Klicken Sie mit der rechten Maustaste auf Quellcode der Singleton Bean und wählen Senden JMS Message.wie Nachricht von Session Bean senden indirekt an MessageDrivenBean

Aber das würde die Nachricht in dem MySingletonBean erzeugt machen MyMessageDrivenBean gesendet werden, wenn, was ich wollte eigentlich tun, um für die Nachricht von MySatefulSessionBean zu MyMessageDrivenBean weitergeleitet werden.

d.h anstatt eine neue Nachricht in MySingleTonBean Erstellen und Senden sie zur Verarbeitung an MyMessageDrivenBean, möchte ich die Nachricht, dass MySatefulSessionBean instanziiert von MyMessageDrivenBean des zu verarbeitenden onMessage (Message msg) -Methode.

Ich kann MySatefulSessionBean nicht direkt mit Nachricht senden zu MyMessageDrivenBean aus persönlichen Gründen zu machen; so sollte die Nachricht indirekt an die MyMessageDrivenBean gehen

Können Sie mir aufklären, wie es geht?

Vielen Dank im Voraus

Antwort

1

Bereiten Sie die Nachricht nicht in Ihrer Stateful-Session-Bean vor, sondern bereiten Sie nur die tatsächliche Nutzlast vor.

Rufen Sie Ihren Singleton mit dieser Nutzlast als Methodenparameter auf, und behalten Sie dann die JMS-Nachrichtserstellung als interne Details des Singleton bei.

+0

Danke Mike, klingt ein guter Plan; Ich werde sehen, ob ich realisieren kann, warum du vorgeschlagen hast! – Abraham

+1

Ich meine "was", Entschuldigung für den Tippfehler. – Abraham

1

Sie sind nicht erhalten JMS-Nachrichten in EJBs andere dann Message Driven Beans soll. Daher sollte Ihre MySingletonBean keine JMS-Nachrichten empfangen. Wenn Sie es schaffen, es irgendwie zu implementieren, würden Sie alle möglichen verrückten Fehler bekommen (wegen der EJB-Objektlebenszyklusregeln).

Also überdenken Sie die Architektur.

+0

Danke für Ihre Antwort Piotr Kochański. Aber die Sache ist, ich erhalte die Nachrichten in MySingletonBean nicht. Ich verwende es nur, um eine von MySatefulSessionBean gesendete ObjectMessage mit einer Zeitmarke zu versehen und sie dann an MyMessageDrivenBean weiterzuleiten. – Abraham

+0

Was meinst du mit "Nachricht weiterleiten"? Wie es möglich ist, ohne Nachricht in MySingletonBean zu erhalten –

+0

Ja, das ist auch für mich verwirrend. Aber die Spezifikation, die mir gegeben wird, ist, dass jeder alleinstehende Klient eine Nachricht unter Verwendung der Stateful Session Bean (MySatefulSessionBean) zu einem Chat-Manager (MySingletonBean) senden sollte. Dann sendet der Chat-Manager eine Nachricht an die Warteschlange, die von MyMessageDrivenBean verarbeitet werden soll.
Der eigenständige Client sendet nicht javax.jms.Message, sondern ein serialisierbares Objekt, deshalb sende ich ObjectMessage an MyMessageDrivenBean. – Abraham

Verwandte Themen