【发布时间】:2018-07-08 03:45:43
【问题描述】:
我想集成测试一个自定义骆驼组件,因此需要一个嵌入式/内存消息传递,我可以轻松地使用它来测试端点。
我希望我可以通过 spring-boot-amqp-starter 实现这一点。 我使用this example 开始,它具有依赖关系:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-broker</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
</dependency>
和配置:
spring:
activemq:
broker-url: vm://embedded?broker.persistent=false,useShutdownHook=false
// ...
这是有效的,当我在 spring 中使用常规的 Listener 注释时,我有一个使用模板的发送者和一个记录消息的消费者。
现在我更进一步,使用骆驼,但它无法识别vm:embedded 代理,而是尝试连接到未运行的 tcp://localhost。
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("activemq:foo").to("log:sample");
from("timer:bar").setBody(constant("Hello from Camel")).to("activemq:foo");
}
};
如何配置 activemq-camel 以使用嵌入式代理?
更新:
我为 spring-boot-dependencies (1.5.9) 使用依赖管理导入
和camel-spring-boot-dependencies (2.20.1)。
【问题讨论】:
-
你使用的是什么版本的技术
-
查看问题更新
-
ActiveMQ 客户端版本是多少
-
客户端版本 org.apache.activemq.activemq-client: 5.14.5
-
尝试使用更新的 ActiveMQ 版本,不久前我们修复了一些有关 Spring Boot 的问题。
标签: spring-boot apache-camel amqp