我想使用 Camel 作为我正在开发的应用程序的集成点。我的意图是,从我的应用程序中,将消息注入骆驼,并从骆驼接收消息,并通过骆驼上下文路由在应用程序启动时处理这些消息。从我所做的研究来看,ProducerTemplate / ConsumerTemplate 似乎是与骆驼上下文中定义的路由进行通信的方式。但是,当我使用 ProducerTemplate 发布到“直接:连接”时,我收到“没有可用的消费者”异常。即使 route1 能够与 route2 通信并且我收到一条日志消息,也会发生这种情况:
Route: route2 started and consuming from: Endpoint[direct://connect]
谁能提供有关如何最好地为我的目的使用 Camel 的指导?
CamelEval.java
public class CamelEval {
public static void main(String[] args) throws Exception {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext ("camel-streams.xml");
SpringCamelContext sctx = new SpringCamelContext (ctx);
sctx.start();
sctx.createProducerTemplate().sendBody("direct:connect", "hello world");
Thread.sleep (5000);
}
}
骆驼流.xml
<camelContext trace="true" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="stream:in?promptMessage=Enter Something: "/>
<transform>
<simple>${body.toUpperCase()}</simple>
</transform>
<to uri="direct:connect"/>
</route>
<route>
<from uri="direct:connect"/>
<to uri="stream:out"/>
</route>
</camelContext>