2017-11-30 6 views
0

Ich habe benutzerdefinierte leer Vermittler erstellt, der Code wie folgt aussieht:WSO2 EI Benutzerdefinierte Mediator beendet Sequenzausführung

public class ExampleMediator extends AbstractMediator { 

    public boolean mediate(MessageContext context) { 
     return true; 
    } 
} 

In nächsten Schritten habe ich Mediator Projekt als einsetzbares Archiv exportiert und es in EI_HOME \ lib eingefügt Verzeichnis.

Ich benutze diese benutzerdefinierten Vermittler in Folge auf diese Weise:

<inSequence> 
    <log level="full"/> 
    <class name="com.example.ExampleMediator"/> 
    <log level="custom"> 
     <property name="message" value="&quot;After custom mediator&quot;"/> 
    </log> 
</inSequence> 

Wenn ich GET-Anfrage an meinem REST API sende diese Sequenz Aufruf ich nicht zweites Protokoll in der Konsole sehen, endet Sequenz und nächste Vermittler sind nie ausgeführt. Die Antwort von dieser Vermittlung ist eine leere Nachricht.

Ich erwarte, dass nächste Mediatoren ausgeführt werden sollten, nachdem Sie in der mediate() - Methode den Wert true zurückgegeben haben. Was ist falsch an meinem Ansatz?

Antwort

0

Alles sieht gut aus für mich, außer ich sehe keine Paket-Deklaration com.example oben auf Code.

Es kann sein, dass ESB diesen Vermittler nicht sieht (Ausnahme muss in Protokollen com.example.ExampleMediator nicht gefunden werden) oder es gibt ein anderes Beispiel in esb Verteilung (ich bin nicht sicher, aber es ist möglich, Name Kollision) gleich Beispielmediator com.example.ExampleMediator. Dies ist ein gebräuchlicher Name für Beispiele. Lieber einen eindeutigen Paket- und Klassennamen angeben.

Verwandte Themen