如何使用队列中的特定标头消息。我正在使用camel activemq。
routebuilder:
.....
from("activemq:Q1").
.setHeader("myHeader",xpath(...))
.to("activemq:Q2")
.....
我尝试使用那些在另一个类中具有特定标题的消息,例如。
....
ConsumerTemplate consumerTemplate = camelContext.createConsumerTemplate();
Exchange exchange = consumerTemplate.receive("activemq:Q2",10000);
String body = exchange.getIn().getBody(String.class);
String customvalue = exchange.getIn().getHeader("myHeader", String.class);
.....
如何才能获得myHeader = 123的消息。
答案 0 :(得分:5)
您可以使用JMS消息选择器。在Camel使用者端点中,您可以使用 $title = 'Article title'; // Your article title
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName('alias'))
->from($db->quoteName('#__content'))
->where($db->quoteName('title') . ' = ' . $db->quote($title));
$db->setQuery($query);
try
{
$alias = $db->loadResult(); // variable has now article alias
}
catch (Exception $ex)
{
$alias = null;
}
if ($alias)
{
// Do something with alias
}
选项:http://camel.apache.org/jms
的长篇大论
selector
虽然我不记得标题的名称是否足够,或者你需要做什么
Exchange exchange = consumerTemplate.receive("activemq:Q2?selector=myHeader",10000);
%3D是Exchange exchange = consumerTemplate.receive("activemq:Q2?selector=myHeader %3D '*'",10000);
编码的。