我试图找出如何从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比较以确认这一点)我只是在将实际值提取到字符串中时遇到问题。
答案 0 :(得分:0)
解决方案是使用toD而不是本机允许路由到JMS头值的toD。链接如下: