1
Ich versuche Objekt von MongoDB zu ziehen und es zu meiner aktuellen Nutzlast ADD und es in einer anderen Datenbank speichern:Wie die Nutzlast mit einem Objekt von MongoDB (Kamel mongodb) bereichern
@Override
public void configure() throws Exception
{
from(kafkaEndpoint)
.convertBodyTo(DBObject.class)
.enrich("mongodb:mongoDb?database=myDbName1&collection=UserColl&operation=findOneByQuery",
(original, external) -> {
DBObject originalBody = original.getIn().getBody(DBObject.class);
DBObject externalBody = external.getIn().getBody(DBObject.class);
Map<String, DBObject> map = new HashMap<String, DBObject>();
map.put("original", originalBody);
map.put("external", externalBody);
original.getIn().setBody(map);
return original;
})
.to("mongodb:mongoDb?database=myDbName2&collection=UserColl&operation=insert");
}
Das Problem dass enrich die Abfrage aus dem In.body holen, die mein ursprüngliches Objekt hält ...
So wie kann ich Abfrage übergeben ({ "entity.id": ""}) zu Enrich (mongoldb: ...) und Originalobjekt erhalten, um es mit Ergebnissen zu verbinden?
Danke.
Ich habe versucht, diese Methode zu verwenden, jedoch bekomme ich immer "Keine Verbraucher am Endpunkt verfügbar: direct: // findOneByQuery". Ist das auch etwas, dem du begegnet bist? –
Der andere Fehler, der auftritt, wenn ich versuche, die mongodb-Komponente in "anreichern" zu verwenden, ist: "Fehler beim Erstellen des Producer für den Endpunkt: mongodb3 nullPointerException" –