WebSphere-Bindungen für die Definition von MDB-JNDI-Namen verwenden

Der nachrichtengesteuerte Deskriptor konfiguriert das Ziel für den Nachrichten-Listener. Eine Nachrichtenzielreferenz ist ein logischer Name, der verwendet wird, um eine Enterprise-Bean in einem EJB-Modul zu suchen, das als Nachrichtenziel fungiert. Nachrichtenzielreferenzen sind nur in Artefakten der J2EE Version 1.4 und höher vorhanden, wie z. B.:

Wenn einer einzigen Nachrichtenzielverbindung mehrere Nachrichtenzielreferenzen zugeordnet sind, wird während der Implementierung ein einziger JNDI-Name für eine Enterprise-Bean erfasst, der der Nachrichtenzielverbindung und anschließend allen verbundenen Nachrichtenzielreferenzen zugeordnet wird. Zur Laufzeit werden die Nachrichtenzielreferenzen an die verwalteten Nachrichtenziele in der Zielbetriebsumgebung gebunden. Wenn eine Nachrichtenzielreferenz und eine nachrichtengesteuerte Bean (MDB, Message-driven Bean) über dasselbe Nachrichtenziel verbunden sind, müssen Referenz und Bean denselben Ziel-JNDI-Namen haben. Haben Referenz und Bean denselben Namen, wird nur der Ziel-JNDI-Name für die MDB erfasst und auf die entsprechende Nachrichtenzielreferenz angewendet. Wenn ein Implementierer sich dazu entschließt, bei der Installation der Anwendung Standardbindungen zu generieren, ordnet der Installationsassistent den folgenden unvollständigen Nachrichtenzielreferenzen JNDI-Namen zu:
Wenn eine Nachrichtenzielreferenz einen < message-destination-link> -Link hat, wird der JNDI-Name auf ejs/message-destination-linkName Andernfalls wird der JNDI-Name auf eis/message-destination-refName .

Diese Regel erkennt Ziel-JNDI-Namen für MDBs. Eine automatische Korrektur kopiert den Ziel-JNDI-Namen aus der Datei weblogic-ejb-jar.xml datei in die WebSphere(R ) Application Server bindungsdatei. Der automatische Fix setzt jedoch nicht den ActivationSpec JNDI-Namen oder migriert die Aktivierungskonfigurationseigenschaften in ejb-jar.xml.

Manuelle Lösung für Liberty


Manuelle Lösungen für WebSphere Traditional

Ein Anwendungsentwickler kann Bindungsdefinitionen in den Dateien ibm-xxx-bnd.xml für Module der EJB Version 3.0 und der Web Version 2.5 und in den Dateien ibm-xxx-bnd.xmi für Module vor Java(R) Platform, Enterprise Edition (Java EE) 5 erstellen. Der Anwendungsentwickler kann die Dateien mit einem Tool wie IBM(R) Rational(R) Developer bzw. für Module der EJB Version 3.0 oder der Web Version 2.5 mit einem XML-Editor oder Texteditor erstellen. Der Entwickler übergibt anschließend eine Unternehmensanwendung (Datei mit der Erweiterung .ear), die mit den Bindungen vervollständigt wurde, an einen Anwendungsassemblierer oder -implementierer. Der Assemblierer wird die Bindungen beim Assemblieren der Anwendung nicht ändern. Wenn die Anwendung auf einem Server installiert wird, die von WebSphere Application Server unterstützt wird, ändert oder überschreibt der Implementierer die Bindungen bzw. generiert er Standardbindungen nur dann, wenn Änderungen an den Bindungen für eine erfolgreiche Implementierung der Anwendung erforderlich sind.

Gehen Sie wie folgt vor, um die erforderlichen Änderungen in Rational Application Developer für Beans der EJB Version 2.1 vorzunehmen:
  1. Starten Sie das Assembliertool Rational Application Developer.
  2. Öffnen Sie das richtige EJB-Projekt.
  3. Klicken Sie doppelt auf den Implementierungsdeskriptor.
  4. Klicken Sie auf die richtige Message-driven Bean (MDB).
  5. Blättern Sie zum Abschnitt "WebSphere-Bindungen" vor.
  6. Wählen Sie das Kontrollkästchen JCA-Adapter aus, und geben Sie dann den JNDI-Namen der Aktivierungsspezifikation ein.


Gehen Sie wie folgt vor, um die erforderlichen Änderungen in der Administrationskonsole für Beans der EJB Version 2.0 vorzunehmen: Rational Application Developer Version 7.0 unterstützt die Definition von Aktivierungsspezifikationen der EJB Version 2.1 für Beans der EJB Version 2.0 nicht. Sie können Aktivierungsspezifikationen der EJB Version 2.1 nur für Beans der EJB Version 2.1 definieren.
  1. Definieren Sie die Aktivierungsspezifikation für die MDB in der Administrationskonsole, wenn Sie die Anwendung in WebSphere Application Server implementieren.
  2. Exportieren Sie die EAR-Datei für die Anwendung in der Administrationskonsole.
  3. Kopieren Sie den Implementierungsdeskriptor aus der EAR-Datei in das Projekt, sodass es die richtige Aktivierungsspezifikation hat.

Bindungen während der Anwendungsassemblierung definieren

Ein Anwendungsassemblierer kann Bindungen in Annotationen oder Implementierungsdeskriptoren einer Anwendung definieren. Module der Java EE Version 5 können Annotationen im Quellcode enthalten. Zum Deklarieren einer Annotation stellt ein Anwendungsassemblierer einem Schlüsselwert das Zeichen @ voran. Bindungen für Module mit einer Version vor Java EE 5 werden im Abschnitt "WebSphere-Bindungen" eines Editors für Implementierungsdeskriptoren angegeben. Durch die Modifikation der Implementierungsdeskriptoren können sich die Bindungsdefinitionen in den Bindungsdateien ändern, die beim Entwickeln einer Anwendung erstellt werden. Nachdem die Bindungen definiert wurden, übergibt der Assemblierer die Anwendung an einen Implementierer. Wenn die Anwendung auf einem Server installiert wird, die von WebSphere Application Server unterstützt wird, ändert oder überschreibt der Implementierer die Bindungen bzw. generiert er Standardbindungen nur dann, wenn Änderungen an den Bindungen für die Implementierung der Anwendung erforderlich sind.


Bindungen während der Anwendungsinstallation definieren

Ein Anwendungsimplementierer oder Serveradministrator kann die Bindungen ändern, wenn er die Anwendung über die Administrationskonsole auf einem von WebSphere Application Server unterstützten Server installiert. Neue Bindungsdefinitionen können auf den Seiten des Installationsassistenten angegeben werden.
Außerdem kann ein Implementierer oder Administrator festlegen, dass die Standardbindungen während der Anwendungsinstallation generiert werden. Durch Auswahl der Option für die Generierung von Standardbindungen während der Anwendungsinstallation wird das Produkt angewiesen, die Bindungen in der Anwendung mit den Standardwerten zu vervollständigen. Vorhandene Bindungen werden nicht geändert.
Einschränkung: Die Bindungen für Anwendungsclients können während der Anwendungsinstallation weder definiert noch überschrieben werden. Sie müssen die Bindungen für Anwendungsclientmodule während der Assemblierung definieren und anschließend in der Bindungsdatei speichern.


Bindungen während der Konfiguration einer Anwendungsinstallation definieren

Der Installation einer Anwendung auf einem von WebSphere Application Server unterstützten Server kann ein Anwendungsimplementierer oder Serveradministrator die Bindungen modifizieren, indem er Werte auf den Seiten der Administrationskonsole ändert, die über die Einstellungsseite für die Unternehmensanwendung aufgerufen werden.