2016-08-08 59 views
1

Ich habe eine Nicht-JMS-MDB, die ich auf einem Websphere Liberty-Server installiere.Sind Aktivierungsspezifikationen für Message-Driven Beans erforderlich?

package mdb.test; 

import javax.ejb.MessageDriven; 

@MessageDriven() 
public class TheMDB implements MyOwnListener { 

    public TheMDB() {} 

    @Override 
    public void onMyOwnMessage(MyOwnMessage message) {} 

} 

Ohne weitere Konfiguration gibt der Server die folgende Meldung:

[WARNUNG] CNTR4015W: Die Nachricht Endpunkt für die TheMDB Message-Driven Bean kann nicht, weil die Spezifikation mdb.test/TheMDB Aktivierung ist nicht verfügbar, aktiviert werden . Der Nachrichtenendpunkt empfängt keine Nachrichten, bis die Aktivierungsspezifikation verfügbar wird.

Müssen MDBs eine Aktivierungsspezifikation haben? Ich möchte, dass es nur aktiviert wird, ohne dem Server weitere Konfigurationen hinzufügen zu müssen.

+0

Was generiert die Nachrichten, die die MDB verbrauchen wird? Wie werden Sie dem MDB mitteilen, dass eine Nachricht verfügbar ist? – kaczyns

+0

Es ist wahrscheinlich mein eigener Ressourcenadapter. Im Moment kann ich die MDB nicht aktivieren, was zu dieser Nachricht führt. –

Antwort

2

Im Wesentlichen sagt Ihnen der Server, dass er einen Nachrichtenendpunkt gefunden hat, aber nichts liefert Nachrichten an ihn. Sie müssen eine Aktivierungsspezifikation (entweder JMS oder JCA) hinzufügen, damit die Bean Nachrichten empfangen kann. Einige Informationen zur Definition von JCA Aktivierungsdaten:

http://www.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.wlp.doc/ae/twlp_jca_config_actspec.html

Ich bin mir nicht bewusst, eine Möglichkeit, die Bohne zu aktivieren, ohne es zu einer Aktivierung spec gebunden zu sein. Da es sich um die Verarbeitung von Nachrichten handelt, ist es ohne eine Aktivierungsspezifikation wenig hilfreich. Möglicherweise müssen Sie genug von Ihrem RA auffüllen, um die Aktivierungsspezifikation zu codieren, um Fortschritte zu erzielen, selbst wenn noch keine Nachrichten erstellt werden.

0

Java EE Message-Driven Beans, die als Nachrichtenendpunkte verwendet werden, müssen mithilfe einer ActivationSpecification bereitgestellt werden, die in einer JCA 1.5 (oder höher) -Ressourcenadapterkonfiguration (ra.xml) definiert ist.