我是使用activemq和Camel的新手。
我有这些问题:
我有一个bean和bean方法,由filter过滤。
<filter>
<method ref="MyBean" method="CheckReceivedFilesByParameters"/>
<to uri="direct:b"/>
</filter>
方法CheckReceivedFilesByParameters返回布尔值。 如果是真的话,下一条路线会成功开始。如何在假的情况下调用路由(直接:b)。我想用xml做到这一点。我试图在标签之外调用方法,但没有运气。
<to uri="bean:MyBean?method=CheckReceivedFilesByParameters"/>
<filter>
<simple>false</simple>
<to uri="direct:b"/>
</filter>
如何通过Exchange邮件正确地将参数传递给MyBean方法。什么是最佳做法? 现在我通过创建标题来做,然后在我的方法中我得到headerValues。 我的xml中的示例。
<setHeader headerName="RouteId">
<constant>Test1</constant>
</setHeader>
然后在MyBean方法值中获取标题。
String routeId = exchange.getIn().getHeader("RouteId", String.class);
是否还有更多优雅的&#34;办法。像传递参数一样。像servlet一样?
的request.getParameter(&#34; PAR1&#34)
提前致谢。
答案 0 :(得分:2)
广告1)
如果表达式为true,则filter eip仅路由,例如方法调用返回true。因此,如果方法调用返回false,则过滤器不会路由到“direct:b”。
广告2)
了解参数绑定
答案 1 :(得分:1)
public class ExchangeHelper{
public Object getHeader(Exchange exchange, String header){
return exchange.getIn().getHeader(header, Object.class);
}
}
我想是什么?