Beispiel: Message Driven Bean


Beispiel für eine Message Driven Bean, auf die per Application Client zugegriffen wird. Die Bean erhält eine Nachricht von der Application und loggt diese ins Serverlog.

Aufbau des Beispieles


a) Message Bean-Klasse
b) Application Client


Deploy der Message Driven Bean "MessageBean"

Schritt 1: Einstellungen siehe Screenshot. Die Bean enthält keine Home- oder Remote-Interfaces, d.h. es wird nur die Beanklasse selbst gewählt.
Message Bean (Schritt 1)
Schritt 2: Bean-Klasse auswählen, der Typ wird automatisch erkannt.
Message Bean (Schritt 2)
Schritt 3: Die Message Queue muss konfiguriert werden. Message Bean (Schritt 3)
Da die Bean nur empfängt, kann in diesem Schritt die ComboBox "Target Message Destination" leer bleiben.
Falls man hier doch etwas angibt (z.B. "jms/MBQueue"), dann MUSS auch eine MessageDestination konfiguiert sein.
Unter den "Sun Specific Settings" muss der JNDI-Name der ConnectionFactory angegeben werden.

Nachbearbeitung:
In den Sun specific settings der Bean muss ein JNDI-Name angegeben werden. Dies ist der Name, unter dem ein User die MessageQueue anspricht. Im Beispiel wählen wir "jms/MBQueue".
Message Bean (Nachbearbeitung)

Deploy des Application Clients

Schritt 1: Hinzufügen eines neuen Application Clients.
Application Client (Step 1)
Schritt 2: Main Class wählen.

Nachbearbeitung:
Schritt 1: Anlegen einer Referenz auf die ConnectionFactory der MessageQueue: In der Registerkarte "Resource Ref's" eine Referenz auf die ConnectionFactory zufügen (im Beispiel hat diese Referenz den gleichen JNDI-Namen wie die eigentliche Resource):
Application Client (Nachbearbeitung 1)
Schritt 2: Die eigentliche MessageQueue wird als "Msg Dest Ref" konfiguriert (in der gleichnamigen Registerkarte auf "Add..." klicken).
Coded Name: jms/MBQueueRef
Destination Type: javax.jms.Queue
Usage: Produces
Target Destination Name: jms/MBQueue (dies ist die MessageDriven Bean)
Application Client (Nachbearbeitung 2)
Schritt 3: Außerdem muss eine Message Destination mit den gleichen Einstellungen wie in der Bean eingerichtet werden.
Application Client (Nachbearbeitung 3)



Konfigurieren der MessageQueue im Server

Die QueueConnectionFactory für dieses Beispiel MUSS auf dem Server zuerst konfiguriert werden.

Schritte:
1. Auf den Server verbinden: http://localhost:4848/asadmin
2. Im linken Baum wählt man "JMS Resources".
3. Auf "Connection Factories" klicken, im rechten Fenster "New" wählen.
4. Folgendes eingeben:
JNDI Name: jms/MBConnectionFactory
Type: javax.jms.QueueConnectionFactory
Description: Connection-Factory für das Beispiel der MessageDrivenBean
Resource: Enabled
Konfiguration der MessageQueue (1)
5. Auf "Destination Resources" klicken, im rechten Fenster "New" wählen.
6. Folgendes eingeben:
JNDI Name: jms/MBQueue
Type: javax.jms.Topic javax.jms.Queue Description: MessageQueue für das Beispiel der MessageDrivenBean Resource: Enabled 7. Neue Property mit dem Namen "Name" und dem Wert "PhysicalQueue" zufügen.
Konfiguration der MessageQueue (2)
8. Physical Destination mit "Physical Destination Name" = "PhysicalQueue" und Type="queue" anlegen. Konfiguration der MessageQueue (3)
Nach dem Erstellen der physikalischen Message Queue MUSS der Server neu gestartet werden !