camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cmoulliard <cmoulli...@gmail.com>
Subject RE: How can I set the content of the body when I left a bean and before to go to the next bean ?
Date Mon, 07 Jul 2008 14:51:59 GMT

Here it is :

Class Unmarshall

errorHandler(deadLetterChannel("seda:errors").maximumRedeliveries(1).useExponentialBackoff());
from("file:///c:/temp")
.unmarshall(jaxb)
.to("activemq:queue:myqueue");

Class Transform

errorHandler(deadLetterChannel("seda:errors").maximumRedeliveries(1).useExponentialBackoff());
from ("activemq:queue:myqueue")
.to("bean:converter)
.to("bean:save");
.to("direct:output");

Regards,

Charles


Claus Ibsen wrote:
> 
> Hi
> 
> Could you post your route configuration in full please?
> 
> 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:cmoulliard@gmail.com] 
> Sent: 7. juli 2008 14:02
> To: camel-user@activemq.apache.org
> Subject: RE: How can I set the content of the body when I left a bean and
> before to go to the next bean ?
> 
> 
> Here is what I define in my route :
> 
> errorHandler(deadLetterChannel("seda:errors").maximumRedeliveries(1).useExponentialBackoff());
> 
> Regards,
> 
> Charles
> 
> 
> Claus Ibsen wrote:
>> 
>> Hi
>> 
>> Could you show the route config?
>> No the DLC should kick in, there should be a default DLC to catch the
>> situation and move the invalid message to a default LOG category at WARN
>> level.
>> 
>> So the ClassCastException should be caught and retried 6 times and moved
>> to a WARN log, by the DLC.
>> 
>> 
>> 
>> 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:cmoulliard@gmail.com] 
>> Sent: 7. juli 2008 13:06
>> To: camel-user@activemq.apache.org
>> Subject: RE: How can I set the content of the body when I left a bean and
>> before to go to the next bean ?
>> 
>> 
>> I have made the test with the last build but the problem is always there.
>> 
>> Is this logical that the message could not delivered to the
>> deadletterchannel configurated (in the routing) when I have a
>> ClassCastException in the bean Converter ?
>> 
>> 
>> Claus Ibsen wrote:
>>> 
>>> Hi
>>> 
>>> BTW: You can get the builds from the apache maven snapshot repo, so you
>>> don't have to build camel locally.
>>> 
>>> See:
>>> http://activemq.apache.org/camel/download.html
>>> 
>>> 
>>> 
>>> 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:cmoulliard@gmail.com] 
>>> Sent: 7. juli 2008 11:46
>>> To: camel-user@activemq.apache.org
>>> Subject: RE: How can I set the content of the body when I left a bean
>>> and
>>> before to go to the next bean ?
>>> 
>>> 
>>> Claus,
>>> 
>>> I use Camel 1.4-SNAPSHOT but I haven't made a build since around two
>>> weeks.
>>> 
>>> Regards,
>>> 
>>> Charles
>>> 
>>> 
>>> Claus Ibsen wrote:
>>>> 
>>>> 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:cmoulliard@gmail.com] 
>>>> Sent: 7. juli 2008 10:42
>>>> To: camel-user@activemq.apache.org
>>>> 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:cmoulliard@gmail.com] 
>>>>> Sent: 7. juli 2008 08:40
>>>>> To: camel-user@activemq.apache.org
>>>>> 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:cmoulliard@gmail.com] 
>>>>>> Sent: 4. juli 2008 18:05
>>>>>> To: camel-user@activemq.apache.org
>>>>>> 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.
>>>> 
>>>> 
>>>> 
>>> 
>>> -- 
>>> 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---tp18282228s22882p18313223.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---tp18282228s22882p18314282.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---tp18282228s22882p18315141.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---tp18282228s22882p18318598.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Mime
View raw message