假设我有一个像这样的骆驼路线:
from("direct:myRoute")
.setHeader("someHeader", simple("some header value"))
.beanRef("myBean", "beanMethod");
我有一颗豆子,无法修改
,长这样:
public class MyBean {
public void beanMethod(String headerExpected) {
// do something with the value here.
}
}
基本上,我想从 myRoute 将 someHeader 的值传递给 MyBean 中的 beanMethod。已知 beanMethod 可以接受一个 String
,我该如何传递路由中 someHeader 的值,使其在 beanMethod 内被接受为一个字符串?
setHeader("anotherHeader", simple("bean:myBean?method=beanMethod(${header.someHeader})"))
。 - abbasdgr8.to(..
bean调用后,消息正文将成为方法调用的输出。然后,您可以执行setHeader(“anotherHeader”,simple(“$ {body}”))
。 - Matthew Wilson.to("bean:myBean?method=beanMethod(${property.propKey})"
。(在Camel 2.10上进行了测试) - Alessandro Da Rugna.setHeader("anotherHeader", method(MyBean.class))
。这将调用MyBean
中的方法(如果需要,您可以指定哪个方法),并设置标头值;它不会修改Exchange主体。 - DavidSmyBean.beanMethod(Object o)
不仅仅是(String ...)
,例如myBean.beanMethod(org.apache.camel.Message m)
,那么 URL 会是什么样子? - Gerold Broser