我使用的是Camel 2.17.3和karaf 4.0.7(也尝试过4.0.1)。
我有一个Camel路由在junit测试启动时在Eclipse中运行良好,但在部署到karaf时挂起。如果我改变了amqp:'来自'组件到计时器:路线在卡拉夫中运行良好。
我在路由器中的AMQP设置是:
@Override
public void configure() throws Exception {
getContext().addComponent("amqp", AMQPComponent.amqpComponent(String.format("amqp://%s:%s?amqp.saslMechanisms=ANONYMOUS", AMQP_SERVICE_HOST, AMQP_SERVICE_PORT)));
即使这条路线也会挂起karaf,并且在Eclipse中运行良好:
from("amqp:queue:myqueue").routeId("myRoute")
.log("temp")
在卡拉夫,当我说"挂"时,我会观察这些事情:
2016-10-08 23:46:00,593 |信息| nsole用户karaf |捆绑
| 90 - org.apache.aries.spifly.dynamic.bundle - 1.0.1 |束 考虑到SPI提供商:误路线2016-10-08 23:46:00,593 | 信息| nsole用户karaf |捆绑| 90 - org.apache.aries.spifly.dynamic.bundle - 1.0.1 |没有' SPI-Provider' 清单头。跳过捆绑:误路线2016-10-08 23:46:05,595 | 信息| ool-130-thread-1 | OsgiDefaultCamelContext | 56 - org.apache.camel.camel-core - 2.17.3 | Apache Camel 2.17.3 (CamelContext:mis-routes)正在开始2016-10-08 23:46:05,599 |信息 | ool-130-thread-1 | OsgiDefaultCamelContext | 56 - org.apache.camel.camel-core - 2.17.3 | MDC日志记录已启用 CamelContext:mis-routes 2016-10-08 23:46:05,601 |信息| ool-130-thread-1 | ManagedManagementStrategy | 56 - org.apache.camel.camel-core - 2.17.3 | JMX已启用2016-10-08 23:46:05,708 |信息| ool-130-thread-1 | DefaultRuntimeEndpointRegistry | 56 - org.apache.camel.camel-core - 2.17.3 |运行时端点注册表处于扩展模式,收集所有传入和传出端点的使用情况统计信息(缓存限制:1000) 2016-10-08 23:46:05,804 |信息| ool-130-thread-1 | OsgiDefaultCamelContext | 56 - org.apache.camel.camel-core - 2.17.3 | AllowUseOriginalMessage已启用。如果不需要访问原始邮件,则建议关闭此选项 它可以提高性能。 2016-10-08 23:46:05,805 |信息| ool-130-thread-1 | OsgiDefaultCamelContext | 56 - org.apache.camel.camel-core - 2.17.3 | StreamCaching未使用。如果 使用流然后建议启用流缓存。看更多 详情请见http://camel.apache.org/stream-caching.html
非常感谢任何帮助。谢谢!
答案 0 :(得分:1)
原因应该与Camel JIRA中的这个问题有关:https://issues.apache.org/jira/browse/CAMEL-10278
主要问题是质子-j 0.10与qpid-jms-client版本0.8不兼容。我们将依赖关系升级到了proton-j 0.12.0,修复程序将在Camel 2.17.4版本中提供。
目前您可以使用Camel 2.17.4-SNAPSHOT或升级Camel-Amqp Karaf功能中的依赖项。