apache-camel - 动态拦截 Camel 端点

标签 apache-camel intercept

我正在尝试拦截 URI 的值与交换 header 中的某些信息匹配的端点。

假设我在 header 中有一个名为 DatabaseName 的字段。我想强制执行特定路由仅写入 header 中指定的数据库。

我可以做这样的事情吗?

interceptSendToEndpoint("mock:${in.header.DatabaseName}")

我试过了,但是好像不行。我有哪些选择?

我也在考虑做这样的事情:

interceptSendToEndpoint("mock:*").when(...)?

但在这种情况下,我不确定我是否可以在when表达式中引用被拦截节点的URI。

谢谢

最佳答案

您可以使用通配符进行拦截,并将其与何时执行您想要的操作相结合,详情请参阅:http://camel.apache.org/intercept

消息上的 header 具有键 Exchange.INTERCEPTED_ENDPOINT (CamelInterceptedEndpoint),它具有被拦截的端点 uri。您可以在 when 中使用它来匹配谓词。类似的东西:

interceptSendToEndpoint("mock:*")
  .when(simple("${header.CamelInterceptedEndpoint} == ${in.header.DatabaseName}"))
  ...

关于apache-camel - 动态拦截 Camel 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18972834/

相关文章:

java - 如何在apache Camel中使用文件名日期轮询文件?

java - Spring boot 2通过Apache Camel连接到rabbitmq

elasticsearch - Apache Camel在Elasticsearch连接器中指定_id

java - 像防火墙一样拦截和阻止与 Java 的连接

search - Squid + squidGuard 未在 duckduckgo.com 上强制执行安全搜索

linux - 在 Linux 上使用 Python 拦截和发送击键

arrays - 如何在golang中找到两个 slice 的截距结果

java - Camel jetty-activemq 是否为每条消息创建新的 activemq 连接

java - Camel RouteDefinition 类的 NoSuchMethodError

android ClickableSpan 拦截点击事件