有没有办法从bean设置消息头?

Dav*_*vid 7 apache-camel

我有一个简单的骆驼路线我需要修改.路线看起来像这样:

from(source.uri)
    .unmarshal()
    .bean(TransformMessageBean.class, "SomeMethod")
    .to(destination.uri)
Run Code Online (Sandbox Code Playgroud)

我想在解组之后添加另一个bean方法调用,它设置一个标题值而不会中断当前数据流.有谁知道这样做的方法?我在apache的文档中读到,在出站消息体中设置了bean的返回值.有没有办法将其更改为标题?

提前致谢!

Ray*_*Ray 10

当然!其中一个选项是

.setHeader("headerName").method(beanInstance, "methodToGetHeaderValue")
Run Code Online (Sandbox Code Playgroud)

使用这种方法,所methodToGetHeaderValue提供的bean实例上的方法(例如)将返回一个值,该值将成为头的值.

有很多选择.您可以使用bean实例,bean类(如示例中),甚至是bean名称来调用它,所有这些都带有或不带有方法名称.


Kim*_*tai 6

在 Spring XML DSL 中,它类似于

 <setHeader headerName="headerName">
      <method bean="mybean" method="mymethod" />                
</setHeader>
Run Code Online (Sandbox Code Playgroud)