到 ActiveMQ 目的地的骆驼路线

use*_*073 0 apache-camel


我正在尝试设置从文件系统到在 ActiveMQ 上运行的 JMS 目标的基本路由。我的 ActiveMQ 服务器使用默认设置在本地主机上运行,​​并且在“ activemq/queue/TestQueue有一个可用的队列。所以我编写了以下 Java 路由:

public static void main(String args[]) throws Exception {
    CamelContext context = new DefaultCamelContext();
    ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
            "vm://localhost");
    context.addComponent("jms",
            JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
    context.addRoutes(new RouteBuilder() {
        public void configure() {
            from("file:D:\\camel\\in").to(
                    "activemq:queue:TestQueue");
        }
    });
    context.start();
    Thread.sleep(10000);
    context.stop();
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,引发了以下异常:

Exception in thread "main" org.apache.camel.FailedToCreateRouteException: Failed to create route route1 at: >>> To[activemq:queue:TestQueue] <<< in route: Route(route1)[[From[file:D:\camel\in]] -> [To[activemq:queue... because of Failed to resolve endpoint: activemq://queue:TestQueue due to: 
No component found with scheme: activemq
        at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:945)
    . . . .
    Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: activemq://queue:TestQueue due to: No component found with scheme: activemq
Run Code Online (Sandbox Code Playgroud)

我尝试了“to”路由的其他一些变体,例如“activemq:queue:activemq/queue/TestQueue”,但没有成功。知道如何使它工作吗?
谢谢

Pet*_*ler 5

当您命名 JMS 组件时jms,您需要按如下方式引用队列:

"jms:queue:TestQueue"

代替

"activemq:queue:TestQueue"