Hi Charles, I will try to hack a unit test that demonstrates your route and bean chain, to help identify the problem.
What version of Camel are you using? Have you tried with the latest 1.4-SNAPSHOT version of Camel? 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: 7. juli 2008 10:42 To: [email protected] Subject: RE: How can I set the content of the body when I left a bean and before to go to the next bean ? Hi Claus, Unfortunately, what you propose does not work. For your information, my activemq is defined in my camelcontext as a vm queue. When I use in my route "direct" endpoint instead of "activemq", the object transformed is well send to the "save" bean. From("File:///c:/temp") .unmarshall(jaxb) .to("direct:input"); 2nd part : >From ("direct.input") .to("bean:converter) .to("bean:save"); .to("direct:output"); Regards, Charles Claus Ibsen wrote: > > Hi > > I assume since the original input is from a file you are doing an InOnly > message exchange pattern (MEP). > > So whenever you receive a message from the jms queue:myqueue and it hasn't > a reply-to set it should also be a InOnly message out-of-the-box. > > So I would expect that if you set the altered message on the In message > then the save bean should see this change: > > private void sendTransformedMesage(Exchange in, Object object) { > in.getIn().setBody(object); > } > > > 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: 7. juli 2008 08:40 > To: [email protected] > Subject: RE: How can I set the content of the body when I left a bean and > before to go to the next bean ? > > > 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. > > > -- 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---tp18282228s22882p18312377.html Sent from the Camel - Users mailing list archive at Nabble.com.
