java - xml 中的 apache Camel 过滤器。在xml中将参数传递给Bean

标签 java xml spring apache-camel activemq

我刚开始使用 activemq 和 Camel。

我有这些问题:

  1. 我有一个 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>
    
  2. 如何通过 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/

相关文章:

java - TabHost 中的 ListView

java - Spring Boot从1.5迁移到2.1, hibernate 错误

java - 更改 Substance LookAndFeel 的文本颜色

c# - XML Schema 验证 - 字段内验证

java - netty中iswritable为false后如何处理新请求?

c# - 将原始 XML 绑定(bind)到 WPF 中的数据网格

spring - 使用Spring Boot运行单元测试, “no runnable methods”错误

java - spring boot 应用程序不启动

java - 如何在 Java/JavaFX 中通过 MediaPlayer 播放内存中的声音

java - Android DataBinding、onItemrangeMoved - 条目 block 何时在列表中移动?