0

開発中のアプリケーションの統合ポイントとして 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>
4

1 に答える 1