我刚开始使用 activemq 和 Camel。
我有这些问题:
我有一个 bean 和 bean 方法,它们由过滤器调用。
<filter> <method ref="MyBean" method="CheckReceivedFilesByParameters"/> <to uri="direct:b"/> </filter>
方法 CheckReceivedFilesByParameters 返回 boolean 值。 如果为真,则下一条路线成功启动。我如何在 false 时调用路由 (direct: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 方法值中获取 header 。
String routeId = exchange.getIn().getHeader("RouteId", String.class);
是否应该有一些更“优雅”的方式。比如传递参数。就像在 servlet 中一样?
request.getParameter("par1")
提前致谢。
最佳答案
广告 1)
过滤器 eip 仅在表达式为真时路由,例如方法调用返回真。因此,如果方法调用返回 false,则过滤器不会路由到“direct:b”。
广告 2)
阅读参数绑定(bind)
关于java - xml 中的 apache Camel 过滤器。在xml中将参数传递给Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24529829/