Я пытаюсь узнать больше о Apache Camel. Я нашел документацию несколько полезной, но оставляет много догадок для начинающих гонщиков Верблюда, которые не знают, как небольшие сегменты кода должны легко вписываться в полностью функционирующие программы. Надеюсь, большинство людей знает, что я пытаюсь описать. Я был потерян много других раз в некоторых книгах по программированию, где сегменты кода показаны вне контекста полностью запущенной программы.Программа агрегирования
В любом случае, это моя программа, которая по какой-то причине не объединяет сообщения. Я надеялся, что он заполнит все мои сообщения, но эта программа не делает этого. При запуске программы я получаю пустой файл в качестве вывода, который равен , а не моей цели.
package laser.helmet.camel.friend;
import org.apache.camel.builder.RouteBuilder;
public class AggregatingMessagesRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
from("direct:start")
.aggregate().constant(true)
.completionTimeout(100L)
.groupExchanges()
.to("file:target/this_folder/result?allowNullBody=true");
}
}
Тогда я называю эту программу из приведенного ниже класса, который имеет main
метод конечно.
package laser.helmet.camel.friend;
import org.apache.camel.CamelContext;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.ProducerTemplate;
public class Main {
public static void main(String[] args) throws Exception {
CamelContext c = new DefaultCamelContext();
c.addRoutes(new AggregatingMessagesRoute());
ProducerTemplate pt = c.createProducerTemplate();
c.start();
pt.sendBody("direct:start", "1");
pt.sendBody("direct:start", "2");
Thread.sleep(5000);
c.stop();
}
}
Я ожидал, что тело из двух сообщений, которые я создаю с ProducerTemplate
быть как в файле после маршрута заканчивается, но это просто пустой файл. Мне пришлось добавить часть маршрута allowNullBody=true
, потому что по какой-то причине тело при запуске этой программы имеет значение null.
Также, если вы новичок и задаетесь вопросом. Я ввожу зависимости с Maven вместо того, чтобы помещать camel.jars в свой путь Java classpath.
Спасибо, что прочитали это все. : D
Так как я могу начать агрегировать сообщения Stackoverflow? 0_о
Мир,
user_loser
Если вы проголосовали, пожалуйста, укажите причины. Однако, если вы считаете, что это восходящий сноб не является веской причиной. Спасибо за внимание к этому небольшому комментарию. :) –
Я проголосовал за это, чтобы сбалансировать это для вас, это очень хороший вопрос, и я уверен, что это поможет многим людям в будущем. –