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.
Schritt 2: Bean-Klasse auswählen, der Typ wird automatisch erkannt.
Schritt 3: Die Message Queue muss konfiguriert werden.
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".
Deploy des Application Clients
Schritt 1: Hinzufügen eines neuen Application Clients.
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):
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)
Schritt 3: Außerdem muss eine Message Destination mit den gleichen Einstellungen wie in der Bean eingerichtet
werden.
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
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.
8. Physical Destination mit "Physical Destination Name" = "PhysicalQueue" und Type="queue" anlegen.
Nach dem Erstellen der physikalischen Message Queue MUSS der Server neu
gestartet werden !