57.9. 示例
在以下路由中,我们使用 SEDA 队列向这个 async 队列发送请求,以便能够在另一个线程中发送触发和用于get 消息以便进一步处理,并将这个线程中的恒定回复返回到原始调用者。
我们发送 Hello World 消息,并且希望回复正常。
@Test public void testSendAsync() throws Exception { MockEndpoint mock = getMockEndpoint("mock:result"); mock.expectedBodiesReceived("Hello World"); // START SNIPPET: e2 Object out = template.requestBody("direct:start", "Hello World"); assertEquals("OK", out); // END SNIPPET: e2 assertMockEndpointsSatisfied(); } @Override protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { // START SNIPPET: e1 public void configure() throws Exception { from("direct:start") // send it to the seda queue that is async .to("seda:next") // return a constant response .transform(constant("OK")); from("seda:next").to("mock:result"); } // END SNIPPET: e1 }; }
"Hello World"消息将从另一个线程的 SEDA 队列中消耗,以便进一步处理。由于这来自一个单元测试,它将发送到 模拟
端点,用户可以在单元测试中进行断言。