2017-12-18 4 views
-2

Ich habe eine Spring Boot (V. 1.5.1) -Anwendung.Apache Camel Route und Spring Boot: Anwendungsstart

Im Rahmen des Startvorgangs der Anwendung muss ein externer Dienst aufgerufen werden. Das ist in Ordnung - ich habe eine Klasse implementiert, die ApplicationListener implementiert und der externe Service wird korrekt aufgerufen.

Mein Problem ist, dass der externe Dienst ruft sofort meine Anwendung zurück auf eine Rückruf-URL. Dieser Aufruf an meine Anwendung schlägt mit einem 404 Not Found fehl. Der URL-Endpunkt ist als Apache Camel (v. 2.17.0) -Route eingerichtet. Da der externe Dienst einen 404 erhält, würde dies bedeuten, dass die Route in meiner Anwendung nicht gestartet wurde, wenn der externe Dienst sie aufruft.

In der Tat habe ich dies durch Debuggen der Anwendung und Hinzufügen eines Haltepunkts vor dem Aufruf an den externen Dienst ziemlich bewiesen. Wenn ich die Callback-URL selbst mit dem Code pausiert aufrufen, bekomme ich selbst 404. Erst wenn die gesamte Methode der ApplicationListener-Klasse abgeschlossen und meine Anwendung vollständig gestartet wurde (Meldung: "FrameworkServlet 'dispatchServlet': Initialisierung abgeschlossen"), wird die Rückruf-URL verfügbar.

Gibt es eine Möglichkeit, die Apache Camel-Route vor dem Aufruf des externen Dienstes starten zu können?

Vielen Dank im Voraus für jede Hilfe.

Antwort

0

Problem behoben, bei dem der ApplicationListener-Code in eine neue Camel-Route übertragen wurde, die nach der Callback-URL-Route gestartet wurde. Es läuft mit einem Camel-Timer.