从JMS头获取字符串值

时间:2018-01-19 08:31:16

标签: java spring jms activemq spring-jms

我试图找出如何从JMS标头中提取值,以便我可以动态地将其路由到特定队列。我花了几个小时尝试各种方法来提取价值,但我还没有成功。请参阅下面的代码片段,其中说明了我之后的内容。任何帮助,甚至指出我正确的方向将非常感激。

// fetch the queue name from the JMS header
String queue = "jms:queue:" + header("__DestinationQueue").toString();

choice = choice
                .when(header("Match").isEqualTo("true"))
                .id("JMSDaemonOutboundRouteBuilder")
                .to(queue);
        choice = choice
                .otherwise().bean(UnroutableMessageLogAction.class)
                .bean(EndConversationAction.class, "process")
                .bean(ESBMessageCompleteAction.class, "process")
                .to("jms:queue:UNROUTED").endChoice();

数据肯定包含在标题中(我在标题值上运行.isEqualTo比较以确认这一点)我只是在将实际值提取到字符串中时遇到问题。

1 个答案:

答案 0 :(得分:0)

解决方案是使用toD而不是本机允许路由到JMS头值的toD。链接如下:

http://camel.apache.org/message-endpoint.html