Apache camel Camel组件:从Bean动态设置属性

Apache camel Camel组件:从Bean动态设置属性,apache-camel,jbossfuse,Apache Camel,Jbossfuse,我在Jboss Fuse蓝图中定义了一条驼峰路线。我需要在运行时从Bean中设置一个变量。请参见此示例: <camelContext xmlns="http://camel.apache.org/schema/spring"> <route id="wsClient"> <from uri="timer:foo?repeatCount=1" /> <setBody>


我在Jboss Fuse蓝图中定义了一条驼峰路线。我需要在运行时从Bean中设置一个变量。请参见此示例:

<camelContext xmlns="http://camel.apache.org/schema/spring">
     <route id="wsClient">
            <from uri="timer:foo?repeatCount=1" />
            <setBody>
                <simple>Message</simple>
            </setBody>
            <transform>
                  <method bean="myBean" method="transform" />
            </transform>
            <to uri="cxf:bean:MyWebService?defaultOperationName={{operation}}" />
            <to uri="mock:result" />
     </route>
</camelContext>

消息
在本例中,我想在bean“myBean”中设置名为“operation”的属性。有可能吗? 谢谢

是的,这是可能的。 首先,从bean中设置一个头,然后使用

我不熟悉Spring DSL,但在Java DSL中,它看起来是这样的:

.recipientList(simple("cxf:bean:MyWebService?defaultOperationName=${header.operation}"))
是的,这是可能的。 首先,从bean中设置一个头,然后使用

我不熟悉Spring DSL,但在Java DSL中,它看起来是这样的:

.recipientList(simple("cxf:bean:MyWebService?defaultOperationName=${header.operation}"))

是的,你可以在豆子里做。无需传递任何特定参数。Camel可以自动将exchange、body…等绑定为方法参数。参考:

使用下面的代码可以设置标题或属性

exchange.getIn().setHeader("HeaderName", "Value");

exchange.setProperty("Key", "Value");

是的,你可以在豆子里做。无需传递任何特定参数。Camel可以自动将exchange、body…等绑定为方法参数。参考:

使用下面的代码可以设置标题或属性

exchange.getIn().setHeader("HeaderName", "Value");

exchange.setProperty("Key", "Value");

请参阅此常见问题解答:请参阅此常见问题解答:感谢您的回复,这似乎很有希望。唯一的限制是我的一些bean没有实现交换模式,我的意思是它们只是javapojo,作为参数接收Web服务参数。换句话说,他们在输入中接收Java对象,而不是交换。是否可以将Exchange对象也注入纯JavaBean中?非常感谢您的回复,您的回复似乎很有希望。唯一的限制是我的一些bean没有实现交换模式,我的意思是它们只是javapojo,作为参数接收Web服务参数。换句话说,他们在输入中接收Java对象,而不是交换。是否可以将Exchange对象也注入纯JavaBean中?谢谢