У меня есть следующий фрагмент кода:
@Component
public class RetrievalAllFromDbRoute extends RouteBuilder{
public void configure() throws Exception {
this.from("direct:allObjects").routeId("retrieveAllObjectsFromDB")
.setHeader("CamelMongoDbBatchSize", constant(50))
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
DBObject fieldFilter = BasicDBObjectBuilder.start().add("_id", 1).get();
exchange.getMessage().setHeader(MongoDbConstants.FIELDS_FILTER, fieldFilter);
}
})
.to("mongodb:mongoClient?database="+mongoDbName +"&collection=myObjectCollection&operation=findAll&outputType=DBCursor")
.split(body())
.streaming()
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
JsonNode idNode = UtilMethods.convertStringToJson(exchange.getMessage().getBody().toString());
exchange.getMessage().setBody(idNode.get("_id").asText());
System.out.println("\n Extracted id["+exchange.getMessage().getBody().toString()+"] from db \n");
}
});
}
}
Однако я получаю только один вывод.Установка точки останова и запрос базы данных в первом процессоре показывает, что в базе данных более 300 объектов, поэтому я не понимаю, почему я получаю только 1 объект.
РЕДАКТИРОВАТЬ :Моя зависимость POM maven:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-mongodb</artifactId>
<version>2.22.0</version>
</dependency>
работа с базой данных MongoDB 3.6