開発中のアプリケーションの統合ポイントとして Camel を使用したいと考えています。私の意図は、私のアプリケーションからキャメルにメッセージを注入し、キャメルからメッセージを受信し、キャメル コンテキスト ルートを介して、アプリケーションの起動時にそれらのメッセージを処理することです。私が行った調査から、 ProducerTemplate / ConsumerTemplate は、キャメルコンテキスト内で定義されたルートと通信する方法であるように見えます。ただし、ProducerTemplate を使用して「direct:connect」に公開すると、「No consumer available」という例外が発生します。これは、ルート 1 がルート 2 と通信でき、次のようなログ メッセージを受信した場合でも発生します。
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);
}
}
camel-streams.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>