在路由主体中设置对象
Setting an Object in route body
我正在寻找一种构建对象并将其设置在路由主体中的方法。假设我的 Bean 名为 sample.Person,我需要调用其构造函数之一 Person(name) 并将其设置到 Body 中。
像这样:
<bean id="myBean" class="sample.Person"/>
<route id="myroute">
<from uri="timer:foo?repeatCount=1"/>
<setBody>
<simple>${myBean("name")}</simple>
</setBody>
. . . .
<to uri="mock:result"/>
</route>
不幸的是,这不起作用.....
有帮助吗?
谢谢
起初我会创建 PersonFactory 来实例化 Person 对象:
public class PersonFactory {
public Person createPerson(String name){
return new Person(name);
}
}
然后在骆驼路线中使用它:
<bean id="personFactory" class="sample.PersonFactory" />
<camelContext xmlns="http://camel.apache.org/schema/spring">
.....
<route>
<from uri="timer:foo?repeatCount=1"/>
<setProperty propertyName="personName">
<constant>John Doe</constant>
</setProperty>
<setBody>
<spel>#{@personFactory.createPerson(properties['personName'])}</spel>
</setBody>
. . . .
<to uri="mock:result"/>
</route>
...
<camelContext>
我正在寻找一种构建对象并将其设置在路由主体中的方法。假设我的 Bean 名为 sample.Person,我需要调用其构造函数之一 Person(name) 并将其设置到 Body 中。
像这样:
<bean id="myBean" class="sample.Person"/>
<route id="myroute">
<from uri="timer:foo?repeatCount=1"/>
<setBody>
<simple>${myBean("name")}</simple>
</setBody>
. . . .
<to uri="mock:result"/>
</route>
不幸的是,这不起作用..... 有帮助吗? 谢谢
起初我会创建 PersonFactory 来实例化 Person 对象:
public class PersonFactory {
public Person createPerson(String name){
return new Person(name);
}
}
然后在骆驼路线中使用它:
<bean id="personFactory" class="sample.PersonFactory" />
<camelContext xmlns="http://camel.apache.org/schema/spring">
.....
<route>
<from uri="timer:foo?repeatCount=1"/>
<setProperty propertyName="personName">
<constant>John Doe</constant>
</setProperty>
<setBody>
<spel>#{@personFactory.createPerson(properties['personName'])}</spel>
</setBody>
. . . .
<to uri="mock:result"/>
</route>
...
<camelContext>