Java 骆驼不发布到RabbitMQ队列

Java 骆驼不发布到RabbitMQ队列,java,apache-camel,rabbitmq,Java,Apache Camel,Rabbitmq,我在Camel中的routeContext中定义了一个简单的路由(该路由将用于多个路由) 我的钥匙 我有一个端点(在端点文件中定义) 是的-我已经看到了页面-这就是我在交易所设置标题的想法。但是,队列上没有发布任何消息。很明显,我忽略了一些事情,任何帮助都将不胜感激。因此,这似乎有点牵强,答案与我在问题中没有包括的部分路线有关,因为我认为这不相关 路由从RabbitMQ端点开始(上面未包括)。因此,exchange在到达时设置了一些RabbitMQ头: rabbitmq.ROUTING

我在Camel中的routeContext中定义了一个简单的路由(该路由将用于多个路由)


我的钥匙
我有一个端点(在端点文件中定义)



是的-我已经看到了页面-这就是我在交易所设置标题的想法。但是,队列上没有发布任何消息。很明显,我忽略了一些事情,任何帮助都将不胜感激。

因此,这似乎有点牵强,答案与我在问题中没有包括的部分路线有关,因为我认为这不相关

路由从RabbitMQ端点开始(上面未包括)。因此,exchange在到达时设置了一些RabbitMQ头:

  • rabbitmq.ROUTING\u KEY
  • rabbitmq.EXCHANGE\u NAME
  • rabbitmq.DELIVERY\u标签
这些头在路由的整个生命周期中使用,并在我尝试在不同的RabbitMQ端点上发布时覆盖这些值。我修复的方法是引入一个bean,它去掉了头。在我看来,这不是理想的行为

public void stripRabbitHeaders(@Headers Map headers)
{
    headers.remove("rabbitmq.ROUTING_KEY");
    headers.remove("rabbitmq.DELIVERY_TAG");
    headers.remove("rabbitmq.EXCHANGE_NAME");
}

顺便说一句:您可以使用
removeHeaders(String模式,String…excludePatterns)
Airomega轻松地从路由中删除头文件-您是如何设置端点文件的?
    <endpoint id="genericRabbitEndpoint" uri="rabbitmq://${rabbitmq.host}:${rabbitmq.port}/${rabbitmq.exchange.name}">
        <camel:property key="autoDelete" value="false" />
        <camel:property key="connectionFactory" value="#rabbitConnectionFactory" />
    </endpoint>
public void stripRabbitHeaders(@Headers Map headers)
{
    headers.remove("rabbitmq.ROUTING_KEY");
    headers.remove("rabbitmq.DELIVERY_TAG");
    headers.remove("rabbitmq.EXCHANGE_NAME");
}