You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by gilboy <jo...@gmail.com> on 2015/01/20 21:26:37 UTC
Issue setting property on the object which in the exchange body
Hi
In my route, I have a header property on the exchange called age. In the
body of the exchange I have a person object. I want to set the age property
on the person object.
If I do something like the following in my route and have the setAge
property on the Person bean use the header annotation(e.g.
setAge(@Header("age")Integer age)) the property will get correctly set.
However, the setter message is void, hence the body on the exchange gets
wiped. I can have the setter method return "*this*" but it feels wrong
<transform>
<simple>${body.setAge}</simple>
</transform>
Any other solution?
Thanks
Joe
--
View this message in context: http://camel.465427.n5.nabble.com/Issue-setting-property-on-the-object-which-in-the-exchange-body-tp5761960.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: Issue setting property on the object which in the exchange
body
Posted by Willem Jiang <wi...@gmail.com>.
You can use the bean method return the message body just like this
public class Bar {
@Handler
public Foo doSomething(@Header("age")Integer age, @Body Foo foo) {
foo.setAge(age);
return foo;
}
from("activemq:someQueue").
bean(Bar.class);
You can find more information about Bean Binding here[1]
[1]https://camel.apache.org/bean-binding.html
--
Willem Jiang
Red Hat, Inc.
Web: http://www.redhat.com
Blog: http://willemjiang.blogspot.com (English)
http://jnn.iteye.com (Chinese)
Twitter: willemjiang
Weibo: 姜宁willem
On January 21, 2015 at 4:27:37 AM, gilboy (josephotoole@gmail.com) wrote:
> Hi
>
> In my route, I have a header property on the exchange called age. In the
> body of the exchange I have a person object. I want to set the age property
> on the person object.
>
> If I do something like the following in my route and have the setAge
> property on the Person bean use the header annotation(e.g.
> setAge(@Header("age")Integer age)) the property will get correctly set.
> However, the setter message is void, hence the body on the exchange gets
> wiped. I can have the setter method return "*this*" but it feels wrong
>
>
> ${body.setAge}
>
>
> Any other solution?
> Thanks
> Joe
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Issue-setting-property-on-the-object-which-in-the-exchange-body-tp5761960.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>