apache-camel - 在 Apache Camel 路由中获取之前的消息

标签 apache-camel

我是 camel 的新手,所以也许我以错误的方式解决这个问题,但我正在将消息从一个端点路由到另一个端点并在途中转换它们。然而,下一阶段是向管道添加身份验证。我有一项跟踪经过身份验证的用户的服务。我的计划是,在路由的第一阶段,添加一个过滤器来检查当前用户是否已通过身份验证。如果用户不是,我想将消息转换为身份验证请求并将其发送到我的端点。到目前为止一切都很好,但是,在身份验证之后(如果成功)我想将原始消息发送到管道中。这是可以做到的吗?

我的路线的简化版本是:

from("seda:in").
  filter(method(Authentication.class, "isNotAuthenticated")).
    bean(AuthenticationTransformer.class)
    to("cxfbean:out")
  .end()
  .bean(RequestTransformer.class)
  .to("cxfbean:out")

相同的消息将发送到两个转换器 bean。

最佳答案

在转换消息之前,您应该在 Exchange 属性 setProperty("originalMessage", body()) 中保留消息。之后您可以使用 getProperty("originalMessage")

访问该属性

关于apache-camel - 在 Apache Camel 路由中获取之前的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21586232/

相关文章:

java - 如何使用 Camel 和 Java DSL 创建具有多个连接的 ftp 调用的路由?

java - Camel,Amazon SQS - 没有类型转换器可用于将类型 : java. lang.String 转换为所需类型 : com. amazonaws.services.sqs.AmazonSQS

java - 在 Apache Camel 中如何检查传入消息是否包含字符串

java - Apache Camel - 在处理器中设置值

apache-camel - 当 activemq 不工作时,所有 Camel 路由都会停止

websphere - Websphere 和 Karaf 之间的捆绑容器有何区别?

java - 我如何在 OSGi 容器(JBoss Fuse)中使用 Camel mina hl7codec

Apache Camel - Node.js 的问题

java.lang.ClassCastException : org. apache.camel.builder.ValueBuilder 无法转换为 java.lang.String

java - 使用 ActiveMQ 调度程序的性能下降问题