如何在Camel路由上配置Camel context.xml以在Java bean中执行带有多参数的某些方法?

时间:2018-07-25 03:43:27

标签: jboss apache-camel fuse

我想在Camel(2.21)路由上的Java bean中执行一些带有多参数的方法。 他们的论点是骆驼信息中的一些要素。 主体数据类型为json,xml等。 如何配置CamelContext.xml并编写Java类代码?

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

import org.apache.camel.Body;
import org.apache.camel.Headers;

@Named("demo")
public class MyBean {

    public void processBody(@Body XmlType jaxbBody, @Headers Map<String, Object> params)  {
    }

    public void processBody(@Body InputStream streamBody, @Headers Map<String, Object> params)  {
    }

    public void processBody(@Body String stringBody, @Headers Map<String, Object> params)  {
    }
}

然后在骆驼路线中,发布适当的身体和参数:

from("direct:demoString")
    .setBody( constant("StringValue") )
    .setHeader("param1", constant(false) )          
    .to("bean://demo?method=processBody")

from("direct:demoJaxb")
    .setBody( constant(myObject) )
    .setHeader("param1", constant(true))
    .setHeader("param2", constant("APPEND"))            
    .to("bean://demo?method=processBody")