Hi claus,
My explanation was not enough clear. The JAXB unmarshalling has already be
done :
Here is my routing for the first part of the job:
DataFormat jaxb = new JaxbDataFormat("com.myapplication.schema.myschema");
From("File:///c:/temp").
unmarshall(jaxb)
.to("activemq:queue:myqueue");
2nd part :
>From ("activemq:queue:myqueue")
.to("bean:converter)
.to("bean:save");
My "converter" bean receives as input the JAXB object (through the message
body coming from the queue) and has to perform a java to java
transformation. In this bean, I perform the transformation and I would like
to send the transformation result to the "save" bean endpoint.
I try to send a new message using the following code (after analizing the
pipeline camel test case) but without success :
public Class Converter implements Processor (
public void process(Exchange in) throws Exception (
.... part where transformation of the jaxb object into another java
object took place
sendTransformedMessage(in, object);
}
private void sendTransformedMesage(Exchange in, Object object) {
in.getOut(true).copyFrom(Exchange.getIn());
in.getOut()/setBody(object);
}
Should I have to define the pattern as a InOut between "converter" and
"save" ?
Regards,
Charles
Claus Ibsen wrote:
>
> Hi Charles
>
> Convertion from the dataformat JAXB to Order is supported out of the box
> in Camel with its Data Format:
> http://activemq.apache.org/camel/data-format.html
>
> And the JAXB:
> http://activemq.apache.org/camel/jaxb.html
>
>
> DataFormat jaxb = new JaxbDataFormat("com.mycompany");
> // where com.mycompany is the package where your domain objecs it - eg
> Order
>
> from("File:///c:/temp").
> unmarshal(jaxb).
> to("bean:save);
>
> Then your Order class must be annotated with the JAXB annotations for
> this.
> And you should have a jaxb.index file the JAXB classes you have in the
> package = Order.
>
> For examples see the camel-jaxb component that has a unit DataFormatTest
> that does something like the above.
>
> See this unit test and its related files and you will have something to go
> along with.
>
>
> Med venlig hilsen
>
> Claus Ibsen
> ......................................
> Silverbullet
> Skovsgårdsvænget 21
> 8362 Hørning
> Tlf. +45 2962 7576
> Web: www.silverbullet.dk
> -----Original Message-----
> From: cmoulliard [mailto:[EMAIL PROTECTED]
> Sent: 4. juli 2008 18:05
> To: [email protected]
> Subject: How can I set the content of the body when I left a bean and
> before to go to the next bean ?
>
>
> Hi,
>
> In a bean component receiving a message, I would like to transform the
> content of a object received from something into something different (like
> from JAXB towards Order object).
> To achieve this, I create a pipeline routes :
>
> from("File:///c:/temp").
> to("bean:converter).
> to("bean:save");
>
> Unfortunately, when I define :
>
> in.getOut().setBody(order, Order.class)
>
> after the transformation step in order to send the message to my bean :
> save, I see that the message is send back to my bean converter and not
> propagated to the bean : save !!!!
>
> Where is the issue ? How Can I put the order object into the message that
> Camel will send to bean : save
>
> Regards,
>
> Charles
> --
> View this message in context:
> http://www.nabble.com/How-can-I-set-the-content-of-the-body-when-I-left-a-bean-and-before-to-go-to-the-next-bean---tp18282228s22882p18282228.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>
>
--
View this message in context:
http://www.nabble.com/How-can-I-set-the-content-of-the-body-when-I-left-a-bean-and-before-to-go-to-the-next-bean---tp18282228s22882p18310870.html
Sent from the Camel - Users mailing list archive at Nabble.com.