You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Daniel Wu <da...@gmail.com> on 2008/11/19 12:51:21 UTC

Re: From Quartz to queue

Hi,
I'm also having these error messages with routes that start from a quartz
endpoint. Is the line map.put("trigger", trigger); from the QuartzMessage
class correct/necessary? I'm using


Patrick Shea wrote:
> 
> I'm using 1.2.0 with an internal activemq connection (same results when
> using geronimo 2.0.2 with buitin activemq).
> 
> I think the problem is in the QuartzMessage object, it's adding a Trigger
> object to the header.
> 
> @Override
>     protected void populateInitialHeaders(Map<String, Object> map) {
>         super.populateInitialHeaders(map);
>         if (jobExecutionContext != null) {
>             map.put("calendar", jobExecutionContext.getCalendar());
>             map.put("fireTime", jobExecutionContext.getFireTime());
>             map.put("jobDetail", jobExecutionContext.getJobDetail());
>             map.put("jobInstance", jobExecutionContext.getJobInstance());
>             map.put("jobRunTime", jobExecutionContext.getJobRunTime());
>             map.put("mergedJobDataMap",
> jobExecutionContext.getMergedJobDataMap());
>             map.put("nextFireTime",
> jobExecutionContext.getNextFireTime());
>             map.put("previousFireTime",
> jobExecutionContext.getPreviousFireTime());
>             map.put("refireCount", jobExecutionContext.getRefireCount());
>             map.put("result", jobExecutionContext.getResult());
>             map.put("scheduledFireTime",
> jobExecutionContext.getScheduledFireTime());
>             map.put("scheduler", jobExecutionContext.getScheduler());
>             Trigger trigger = jobExecutionContext.getTrigger();
>  --> Bad?   map.put("trigger", trigger);
>             map.put("triggerName", trigger.getName());
>             map.put("triggerGroup", trigger.getGroup());
>         }
>     }
> 
> -----Original Message-----
> From: davsclaus <ci...@yahoo.dk>
> Sent: Sunday, January 6, 2008 2:28am
> To: camel-user@activemq.apache.org
> Subject: Re: From Quartz to queue
> 
> 
> What version of Camel are you using and witch JMS container are you using?
> 
> I think in the 1.3 branch there is a fix for removing non valid header
> keys
> (eg. not allowed to contain (dot) . in the key name etc.) according to the
> JMS spec.
> 
> /Claus
> 
> 
> 
> Patrick Shea wrote:
>> 
>> I think I found the problem, I misunderstood the concept of in/out in a
>> processor, I was using the out to add my payload while the quartz object
>> was still in the in body. 
>> 
>> But the real problem was with the in header. I had to clear the in header
>> to make this work, somehow the header contained something that jms didn't
>> like.
>> 
>> Patrick
>> 
>> -----Original Message-----
>> From: davsclaus <ci...@yahoo.dk>
>> Sent: Saturday, January 5, 2008 6:21am
>> To: camel-user@activemq.apache.org
>> Subject: Re: From Quartz to queue
>> 
>> 
>> Patrick
>> 
>> To get faster and better feedback I think you should show us the code and
>> configuration that causes the problem.
>> 
>> Maybe creating a small unit test that demonstrates the bug so the Camel
>> team
>> can use this when they find and fix the bug.
>> 
>> /Claus
>> 
>> 
>> Patrick Shea wrote:
>>> 
>>> Hi, it seems that anything starting with a quartz endpoint has issues
>>> going to a jms queue. 
>>> 
>>> I to have a processor to add a string payload to the out message but
>>> somehow the jms message contains some quartz object that get rejected by
>>> the jms queue.
>>> 
>>> I have this as an error message:
>>> 
>>> Only objectified primitive objects, String, Map and List types are
>>> allowed
>>> but was: Trigger 'docs.consumer':  triggerClass: 'org.quartz.CronTrigger
>>> isVolatile: false calendar: 'null' misfireInstruction: 0 nextFireTime:
>>> Fri
>>> Jan 04 07:17:55 PST 2008 type: class org.quartz.CronTrigger
>>> 
>>> Patrrick
>>> 
>>> 
>>> 
>> 
>> -- 
>> View this message in context:
>> http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p14633631.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>> 
>> 
>> 
>> 
>> 
> 
> -- 
> View this message in context:
> http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p14646017.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
> 
> 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p20578240.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: From Quartz to queue

Posted by Daniel Wu <da...@gmail.com>.
Ok, it worked perfectly, thanks!


Claus Ibsen-2 wrote:
> 
> Hi
> 
> Yeah using Camel 1.3 you need to manually clear the headers so you
> only send what the JMS spec allows (primitives and String basically)
> 
> You can do this by pushing a processer before you send it to the JMS
> (there are other solutions as well) where you can clear the headers
> using Java code.
> 
> from(x).process(new Processor()) {
>   public void process(Exchange exchange) {
>      // something like this (maybe you cant set a null)
>      // and we probably dont have a clearHeaders() methods exposes
>      exchange.getIn().setHeaders(null);
>   }
> 
> 
> In a later release this should happen automatically, that Camel drops
> unsupported headers type when sending to JMS.
> 
> 
> /Claus Ibsen
> Apache Camel Committer
> Blog: http://davsclaus.blogspot.com/
> 
> 
> 
> On Wed, Nov 19, 2008 at 1:32 PM, Daniel Wu <da...@gmail.com> wrote:
>>
>> I'm using Camel 1.3 with Activemq 4.1.1
>> Here is my stacktrace:
>>
>> Failed delivery for exchangeId:
>> ID-crisocola.celular.intranet/56221-1227028858014/0-1939. On delivery
>> attempt: 0 caught: org.springframework.jms.MessageFormatException: Only
>> objectified primitive objects, String, Map and List types are allowed but
>> was: Trigger 'atualizacaoCadastral.margemDistribuidores':  triggerClass:
>> 'org.quartz.CronTrigger isVolatile: false calendar: 'null'
>> misfireInstruction: 0 nextFireTime: Wed Nov 19
>> at
>> org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:270)
>>        at
>> org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:172)
>>        at
>> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:450)
>>        at
>> org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:523)
>>        at
>> org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:114)
>>        at
>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:59)
>>        at
>> org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:155)
>>        at
>> org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsynProcessorBridge.process(AsyncProcessorTypeConverter.java:44)
>>        at
>> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:143)
>>        at
>> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:87)
>>        at
>> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:53)
>>        at
>> org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:67)
>>        at
>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:73)
>>        at
>> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:143)
>>        at
>> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:87)
>>        at
>> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:40)
>>        at
>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:44)
>>        at
>> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:68)
>>        at
>> org.apache.camel.processor.loadbalancer.QueueLoadBalancer.process(QueueLoadBalancer.java:41)
>>        at
>> org.apache.camel.component.quartz.QuartzEndpoint.onJobExecute(QuartzEndpoint.java:113)
>>        at
>> org.apache.camel.component.quartz.CamelJob.execute(CamelJob.java:32)
>>        at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
>>        at
>> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
>> Caused by: javax.jms.MessageFormatException: Only objectified primitive
>> objects, String, Map and List types are allowed but was: Trigger
>> 'atualizacaoCadastral.margemDistribuidores':  triggerClass:
>> 'org.quartz.CronTrigger isVolatile: false calendar: 'null'
>> misfireInstruction: 0 nextFireTime: Wed Nov 19 00:30:00 BRST 2008 type:
>> class org.quartz.CronTrigger
>>        at
>> org.apache.activemq.command.ActiveMQMessage.checkValidObject(ActiveMQMessage.java:419)
>>        at
>> org.apache.activemq.command.ActiveMQMessage.setObjectProperty(ActiveMQMessage.java:387)
>>        at
>> org.apache.camel.component.jms.JmsBinding.appendJmsProperties(JmsBinding.java:153)
>>        at
>> org.apache.camel.component.jms.JmsBinding.makeJmsMessage(JmsBinding.java:117)
>>        at
>> org.apache.camel.component.jms.JmsProducer$2.createMessage(JmsProducer.java:116)
>>        at
>> org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:545)
>>        at
>> org.springframework.jms.core.JmsTemplate$4.doInJms(JmsTemplate.java:526)
>>        at
>> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:447)
>>
>>
>> Claus Ibsen-2 wrote:
>>>
>>> Hi Daniel
>>>
>>> Could you write what version of Camel you are using and what JMS
>>> broker and versions you are sending the message to?
>>>
>>> And maybe pasting a fresh snippet of the stacktrace/error would help.
>>> The original problem is nearly 1 year old.
>>>
>>>
>>>
>>> /Claus Ibsen
>>> Apache Camel Committer
>>> Blog: http://davsclaus.blogspot.com/
>>>
>>>
>>>
>>> On Wed, Nov 19, 2008 at 12:51 PM, Daniel Wu <da...@gmail.com>
>>> wrote:
>>>>
>>>> Hi,
>>>> I'm also having these error messages with routes that start from a
>>>> quartz
>>>> endpoint. Is the line map.put("trigger", trigger); from the
>>>> QuartzMessage
>>>> class correct/necessary? I'm using
>>>>
>>>>
>>>> Patrick Shea wrote:
>>>>>
>>>>> I'm using 1.2.0 with an internal activemq connection (same results
>>>>> when
>>>>> using geronimo 2.0.2 with buitin activemq).
>>>>>
>>>>> I think the problem is in the QuartzMessage object, it's adding a
>>>>> Trigger
>>>>> object to the header.
>>>>>
>>>>> @Override
>>>>>     protected void populateInitialHeaders(Map<String, Object> map) {
>>>>>         super.populateInitialHeaders(map);
>>>>>         if (jobExecutionContext != null) {
>>>>>             map.put("calendar", jobExecutionContext.getCalendar());
>>>>>             map.put("fireTime", jobExecutionContext.getFireTime());
>>>>>             map.put("jobDetail", jobExecutionContext.getJobDetail());
>>>>>             map.put("jobInstance",
>>>>> jobExecutionContext.getJobInstance());
>>>>>             map.put("jobRunTime",
>>>>> jobExecutionContext.getJobRunTime());
>>>>>             map.put("mergedJobDataMap",
>>>>> jobExecutionContext.getMergedJobDataMap());
>>>>>             map.put("nextFireTime",
>>>>> jobExecutionContext.getNextFireTime());
>>>>>             map.put("previousFireTime",
>>>>> jobExecutionContext.getPreviousFireTime());
>>>>>             map.put("refireCount",
>>>>> jobExecutionContext.getRefireCount());
>>>>>             map.put("result", jobExecutionContext.getResult());
>>>>>             map.put("scheduledFireTime",
>>>>> jobExecutionContext.getScheduledFireTime());
>>>>>             map.put("scheduler", jobExecutionContext.getScheduler());
>>>>>             Trigger trigger = jobExecutionContext.getTrigger();
>>>>>  --> Bad?   map.put("trigger", trigger);
>>>>>             map.put("triggerName", trigger.getName());
>>>>>             map.put("triggerGroup", trigger.getGroup());
>>>>>         }
>>>>>     }
>>>>>
>>>>> -----Original Message-----
>>>>> From: davsclaus <ci...@yahoo.dk>
>>>>> Sent: Sunday, January 6, 2008 2:28am
>>>>> To: camel-user@activemq.apache.org
>>>>> Subject: Re: From Quartz to queue
>>>>>
>>>>>
>>>>> What version of Camel are you using and witch JMS container are you
>>>>> using?
>>>>>
>>>>> I think in the 1.3 branch there is a fix for removing non valid header
>>>>> keys
>>>>> (eg. not allowed to contain (dot) . in the key name etc.) according to
>>>>> the
>>>>> JMS spec.
>>>>>
>>>>> /Claus
>>>>>
>>>>>
>>>>>
>>>>> Patrick Shea wrote:
>>>>>>
>>>>>> I think I found the problem, I misunderstood the concept of in/out in
>>>>>> a
>>>>>> processor, I was using the out to add my payload while the quartz
>>>>>> object
>>>>>> was still in the in body.
>>>>>>
>>>>>> But the real problem was with the in header. I had to clear the in
>>>>>> header
>>>>>> to make this work, somehow the header contained something that jms
>>>>>> didn't
>>>>>> like.
>>>>>>
>>>>>> Patrick
>>>>>>
>>>>>> -----Original Message-----
>>>>>> From: davsclaus <ci...@yahoo.dk>
>>>>>> Sent: Saturday, January 5, 2008 6:21am
>>>>>> To: camel-user@activemq.apache.org
>>>>>> Subject: Re: From Quartz to queue
>>>>>>
>>>>>>
>>>>>> Patrick
>>>>>>
>>>>>> To get faster and better feedback I think you should show us the code
>>>>>> and
>>>>>> configuration that causes the problem.
>>>>>>
>>>>>> Maybe creating a small unit test that demonstrates the bug so the
>>>>>> Camel
>>>>>> team
>>>>>> can use this when they find and fix the bug.
>>>>>>
>>>>>> /Claus
>>>>>>
>>>>>>
>>>>>> Patrick Shea wrote:
>>>>>>>
>>>>>>> Hi, it seems that anything starting with a quartz endpoint has
>>>>>>> issues
>>>>>>> going to a jms queue.
>>>>>>>
>>>>>>> I to have a processor to add a string payload to the out message but
>>>>>>> somehow the jms message contains some quartz object that get
>>>>>>> rejected
>>>>>>> by
>>>>>>> the jms queue.
>>>>>>>
>>>>>>> I have this as an error message:
>>>>>>>
>>>>>>> Only objectified primitive objects, String, Map and List types are
>>>>>>> allowed
>>>>>>> but was: Trigger 'docs.consumer':  triggerClass:
>>>>>>> 'org.quartz.CronTrigger
>>>>>>> isVolatile: false calendar: 'null' misfireInstruction: 0
>>>>>>> nextFireTime:
>>>>>>> Fri
>>>>>>> Jan 04 07:17:55 PST 2008 type: class org.quartz.CronTrigger
>>>>>>>
>>>>>>> Patrrick
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> View this message in context:
>>>>>> http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p14633631.html
>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p14646017.html
>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p20578240.html
>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>
>>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p20578863.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p20584663.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: From Quartz to queue

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

Yeah using Camel 1.3 you need to manually clear the headers so you
only send what the JMS spec allows (primitives and String basically)

You can do this by pushing a processer before you send it to the JMS
(there are other solutions as well) where you can clear the headers
using Java code.

from(x).process(new Processor()) {
  public void process(Exchange exchange) {
     // something like this (maybe you cant set a null)
     // and we probably dont have a clearHeaders() methods exposes
     exchange.getIn().setHeaders(null);
  }


In a later release this should happen automatically, that Camel drops
unsupported headers type when sending to JMS.


/Claus Ibsen
Apache Camel Committer
Blog: http://davsclaus.blogspot.com/



On Wed, Nov 19, 2008 at 1:32 PM, Daniel Wu <da...@gmail.com> wrote:
>
> I'm using Camel 1.3 with Activemq 4.1.1
> Here is my stacktrace:
>
> Failed delivery for exchangeId:
> ID-crisocola.celular.intranet/56221-1227028858014/0-1939. On delivery
> attempt: 0 caught: org.springframework.jms.MessageFormatException: Only
> objectified primitive objects, String, Map and List types are allowed but
> was: Trigger 'atualizacaoCadastral.margemDistribuidores':  triggerClass:
> 'org.quartz.CronTrigger isVolatile: false calendar: 'null'
> misfireInstruction: 0 nextFireTime: Wed Nov 19
> at
> org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:270)
>        at
> org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:172)
>        at
> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:450)
>        at
> org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:523)
>        at
> org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:114)
>        at
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:59)
>        at
> org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:155)
>        at
> org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsynProcessorBridge.process(AsyncProcessorTypeConverter.java:44)
>        at
> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:143)
>        at
> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:87)
>        at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:53)
>        at
> org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:67)
>        at
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:73)
>        at
> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:143)
>        at
> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:87)
>        at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:40)
>        at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:44)
>        at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:68)
>        at
> org.apache.camel.processor.loadbalancer.QueueLoadBalancer.process(QueueLoadBalancer.java:41)
>        at
> org.apache.camel.component.quartz.QuartzEndpoint.onJobExecute(QuartzEndpoint.java:113)
>        at
> org.apache.camel.component.quartz.CamelJob.execute(CamelJob.java:32)
>        at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
>        at
> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
> Caused by: javax.jms.MessageFormatException: Only objectified primitive
> objects, String, Map and List types are allowed but was: Trigger
> 'atualizacaoCadastral.margemDistribuidores':  triggerClass:
> 'org.quartz.CronTrigger isVolatile: false calendar: 'null'
> misfireInstruction: 0 nextFireTime: Wed Nov 19 00:30:00 BRST 2008 type:
> class org.quartz.CronTrigger
>        at
> org.apache.activemq.command.ActiveMQMessage.checkValidObject(ActiveMQMessage.java:419)
>        at
> org.apache.activemq.command.ActiveMQMessage.setObjectProperty(ActiveMQMessage.java:387)
>        at
> org.apache.camel.component.jms.JmsBinding.appendJmsProperties(JmsBinding.java:153)
>        at
> org.apache.camel.component.jms.JmsBinding.makeJmsMessage(JmsBinding.java:117)
>        at
> org.apache.camel.component.jms.JmsProducer$2.createMessage(JmsProducer.java:116)
>        at
> org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:545)
>        at
> org.springframework.jms.core.JmsTemplate$4.doInJms(JmsTemplate.java:526)
>        at
> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:447)
>
>
> Claus Ibsen-2 wrote:
>>
>> Hi Daniel
>>
>> Could you write what version of Camel you are using and what JMS
>> broker and versions you are sending the message to?
>>
>> And maybe pasting a fresh snippet of the stacktrace/error would help.
>> The original problem is nearly 1 year old.
>>
>>
>>
>> /Claus Ibsen
>> Apache Camel Committer
>> Blog: http://davsclaus.blogspot.com/
>>
>>
>>
>> On Wed, Nov 19, 2008 at 12:51 PM, Daniel Wu <da...@gmail.com> wrote:
>>>
>>> Hi,
>>> I'm also having these error messages with routes that start from a quartz
>>> endpoint. Is the line map.put("trigger", trigger); from the QuartzMessage
>>> class correct/necessary? I'm using
>>>
>>>
>>> Patrick Shea wrote:
>>>>
>>>> I'm using 1.2.0 with an internal activemq connection (same results when
>>>> using geronimo 2.0.2 with buitin activemq).
>>>>
>>>> I think the problem is in the QuartzMessage object, it's adding a
>>>> Trigger
>>>> object to the header.
>>>>
>>>> @Override
>>>>     protected void populateInitialHeaders(Map<String, Object> map) {
>>>>         super.populateInitialHeaders(map);
>>>>         if (jobExecutionContext != null) {
>>>>             map.put("calendar", jobExecutionContext.getCalendar());
>>>>             map.put("fireTime", jobExecutionContext.getFireTime());
>>>>             map.put("jobDetail", jobExecutionContext.getJobDetail());
>>>>             map.put("jobInstance",
>>>> jobExecutionContext.getJobInstance());
>>>>             map.put("jobRunTime", jobExecutionContext.getJobRunTime());
>>>>             map.put("mergedJobDataMap",
>>>> jobExecutionContext.getMergedJobDataMap());
>>>>             map.put("nextFireTime",
>>>> jobExecutionContext.getNextFireTime());
>>>>             map.put("previousFireTime",
>>>> jobExecutionContext.getPreviousFireTime());
>>>>             map.put("refireCount",
>>>> jobExecutionContext.getRefireCount());
>>>>             map.put("result", jobExecutionContext.getResult());
>>>>             map.put("scheduledFireTime",
>>>> jobExecutionContext.getScheduledFireTime());
>>>>             map.put("scheduler", jobExecutionContext.getScheduler());
>>>>             Trigger trigger = jobExecutionContext.getTrigger();
>>>>  --> Bad?   map.put("trigger", trigger);
>>>>             map.put("triggerName", trigger.getName());
>>>>             map.put("triggerGroup", trigger.getGroup());
>>>>         }
>>>>     }
>>>>
>>>> -----Original Message-----
>>>> From: davsclaus <ci...@yahoo.dk>
>>>> Sent: Sunday, January 6, 2008 2:28am
>>>> To: camel-user@activemq.apache.org
>>>> Subject: Re: From Quartz to queue
>>>>
>>>>
>>>> What version of Camel are you using and witch JMS container are you
>>>> using?
>>>>
>>>> I think in the 1.3 branch there is a fix for removing non valid header
>>>> keys
>>>> (eg. not allowed to contain (dot) . in the key name etc.) according to
>>>> the
>>>> JMS spec.
>>>>
>>>> /Claus
>>>>
>>>>
>>>>
>>>> Patrick Shea wrote:
>>>>>
>>>>> I think I found the problem, I misunderstood the concept of in/out in a
>>>>> processor, I was using the out to add my payload while the quartz
>>>>> object
>>>>> was still in the in body.
>>>>>
>>>>> But the real problem was with the in header. I had to clear the in
>>>>> header
>>>>> to make this work, somehow the header contained something that jms
>>>>> didn't
>>>>> like.
>>>>>
>>>>> Patrick
>>>>>
>>>>> -----Original Message-----
>>>>> From: davsclaus <ci...@yahoo.dk>
>>>>> Sent: Saturday, January 5, 2008 6:21am
>>>>> To: camel-user@activemq.apache.org
>>>>> Subject: Re: From Quartz to queue
>>>>>
>>>>>
>>>>> Patrick
>>>>>
>>>>> To get faster and better feedback I think you should show us the code
>>>>> and
>>>>> configuration that causes the problem.
>>>>>
>>>>> Maybe creating a small unit test that demonstrates the bug so the Camel
>>>>> team
>>>>> can use this when they find and fix the bug.
>>>>>
>>>>> /Claus
>>>>>
>>>>>
>>>>> Patrick Shea wrote:
>>>>>>
>>>>>> Hi, it seems that anything starting with a quartz endpoint has issues
>>>>>> going to a jms queue.
>>>>>>
>>>>>> I to have a processor to add a string payload to the out message but
>>>>>> somehow the jms message contains some quartz object that get rejected
>>>>>> by
>>>>>> the jms queue.
>>>>>>
>>>>>> I have this as an error message:
>>>>>>
>>>>>> Only objectified primitive objects, String, Map and List types are
>>>>>> allowed
>>>>>> but was: Trigger 'docs.consumer':  triggerClass:
>>>>>> 'org.quartz.CronTrigger
>>>>>> isVolatile: false calendar: 'null' misfireInstruction: 0 nextFireTime:
>>>>>> Fri
>>>>>> Jan 04 07:17:55 PST 2008 type: class org.quartz.CronTrigger
>>>>>>
>>>>>> Patrrick
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p14633631.html
>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p14646017.html
>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p20578240.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p20578863.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>

Re: From Quartz to queue

Posted by Daniel Wu <da...@gmail.com>.
I'm using Camel 1.3 with Activemq 4.1.1
Here is my stacktrace:

Failed delivery for exchangeId:
ID-crisocola.celular.intranet/56221-1227028858014/0-1939. On delivery
attempt: 0 caught: org.springframework.jms.MessageFormatException: Only
objectified primitive objects, String, Map and List types are allowed but
was: Trigger 'atualizacaoCadastral.margemDistribuidores':  triggerClass:
'org.quartz.CronTrigger isVolatile: false calendar: 'null'
misfireInstruction: 0 nextFireTime: Wed Nov 19
at
org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:270)
        at
org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:172)
        at
org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:450)
        at
org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:523)
        at
org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:114)
        at
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:59)
        at
org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:155)
        at
org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsynProcessorBridge.process(AsyncProcessorTypeConverter.java:44)
        at
org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:143)
        at
org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:87)
        at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:53)
        at
org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:67)
        at
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:73)
        at
org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:143)
        at
org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:87)
        at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:40)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:44)
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:68)
        at
org.apache.camel.processor.loadbalancer.QueueLoadBalancer.process(QueueLoadBalancer.java:41)
        at
org.apache.camel.component.quartz.QuartzEndpoint.onJobExecute(QuartzEndpoint.java:113)
        at
org.apache.camel.component.quartz.CamelJob.execute(CamelJob.java:32)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
        at
org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
Caused by: javax.jms.MessageFormatException: Only objectified primitive
objects, String, Map and List types are allowed but was: Trigger
'atualizacaoCadastral.margemDistribuidores':  triggerClass:
'org.quartz.CronTrigger isVolatile: false calendar: 'null'
misfireInstruction: 0 nextFireTime: Wed Nov 19 00:30:00 BRST 2008 type:
class org.quartz.CronTrigger
        at
org.apache.activemq.command.ActiveMQMessage.checkValidObject(ActiveMQMessage.java:419)
        at
org.apache.activemq.command.ActiveMQMessage.setObjectProperty(ActiveMQMessage.java:387)
        at
org.apache.camel.component.jms.JmsBinding.appendJmsProperties(JmsBinding.java:153)
        at
org.apache.camel.component.jms.JmsBinding.makeJmsMessage(JmsBinding.java:117)
        at
org.apache.camel.component.jms.JmsProducer$2.createMessage(JmsProducer.java:116)
        at
org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:545)
        at
org.springframework.jms.core.JmsTemplate$4.doInJms(JmsTemplate.java:526)
        at
org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:447)


Claus Ibsen-2 wrote:
> 
> Hi Daniel
> 
> Could you write what version of Camel you are using and what JMS
> broker and versions you are sending the message to?
> 
> And maybe pasting a fresh snippet of the stacktrace/error would help.
> The original problem is nearly 1 year old.
> 
> 
> 
> /Claus Ibsen
> Apache Camel Committer
> Blog: http://davsclaus.blogspot.com/
> 
> 
> 
> On Wed, Nov 19, 2008 at 12:51 PM, Daniel Wu <da...@gmail.com> wrote:
>>
>> Hi,
>> I'm also having these error messages with routes that start from a quartz
>> endpoint. Is the line map.put("trigger", trigger); from the QuartzMessage
>> class correct/necessary? I'm using
>>
>>
>> Patrick Shea wrote:
>>>
>>> I'm using 1.2.0 with an internal activemq connection (same results when
>>> using geronimo 2.0.2 with buitin activemq).
>>>
>>> I think the problem is in the QuartzMessage object, it's adding a
>>> Trigger
>>> object to the header.
>>>
>>> @Override
>>>     protected void populateInitialHeaders(Map<String, Object> map) {
>>>         super.populateInitialHeaders(map);
>>>         if (jobExecutionContext != null) {
>>>             map.put("calendar", jobExecutionContext.getCalendar());
>>>             map.put("fireTime", jobExecutionContext.getFireTime());
>>>             map.put("jobDetail", jobExecutionContext.getJobDetail());
>>>             map.put("jobInstance",
>>> jobExecutionContext.getJobInstance());
>>>             map.put("jobRunTime", jobExecutionContext.getJobRunTime());
>>>             map.put("mergedJobDataMap",
>>> jobExecutionContext.getMergedJobDataMap());
>>>             map.put("nextFireTime",
>>> jobExecutionContext.getNextFireTime());
>>>             map.put("previousFireTime",
>>> jobExecutionContext.getPreviousFireTime());
>>>             map.put("refireCount",
>>> jobExecutionContext.getRefireCount());
>>>             map.put("result", jobExecutionContext.getResult());
>>>             map.put("scheduledFireTime",
>>> jobExecutionContext.getScheduledFireTime());
>>>             map.put("scheduler", jobExecutionContext.getScheduler());
>>>             Trigger trigger = jobExecutionContext.getTrigger();
>>>  --> Bad?   map.put("trigger", trigger);
>>>             map.put("triggerName", trigger.getName());
>>>             map.put("triggerGroup", trigger.getGroup());
>>>         }
>>>     }
>>>
>>> -----Original Message-----
>>> From: davsclaus <ci...@yahoo.dk>
>>> Sent: Sunday, January 6, 2008 2:28am
>>> To: camel-user@activemq.apache.org
>>> Subject: Re: From Quartz to queue
>>>
>>>
>>> What version of Camel are you using and witch JMS container are you
>>> using?
>>>
>>> I think in the 1.3 branch there is a fix for removing non valid header
>>> keys
>>> (eg. not allowed to contain (dot) . in the key name etc.) according to
>>> the
>>> JMS spec.
>>>
>>> /Claus
>>>
>>>
>>>
>>> Patrick Shea wrote:
>>>>
>>>> I think I found the problem, I misunderstood the concept of in/out in a
>>>> processor, I was using the out to add my payload while the quartz
>>>> object
>>>> was still in the in body.
>>>>
>>>> But the real problem was with the in header. I had to clear the in
>>>> header
>>>> to make this work, somehow the header contained something that jms
>>>> didn't
>>>> like.
>>>>
>>>> Patrick
>>>>
>>>> -----Original Message-----
>>>> From: davsclaus <ci...@yahoo.dk>
>>>> Sent: Saturday, January 5, 2008 6:21am
>>>> To: camel-user@activemq.apache.org
>>>> Subject: Re: From Quartz to queue
>>>>
>>>>
>>>> Patrick
>>>>
>>>> To get faster and better feedback I think you should show us the code
>>>> and
>>>> configuration that causes the problem.
>>>>
>>>> Maybe creating a small unit test that demonstrates the bug so the Camel
>>>> team
>>>> can use this when they find and fix the bug.
>>>>
>>>> /Claus
>>>>
>>>>
>>>> Patrick Shea wrote:
>>>>>
>>>>> Hi, it seems that anything starting with a quartz endpoint has issues
>>>>> going to a jms queue.
>>>>>
>>>>> I to have a processor to add a string payload to the out message but
>>>>> somehow the jms message contains some quartz object that get rejected
>>>>> by
>>>>> the jms queue.
>>>>>
>>>>> I have this as an error message:
>>>>>
>>>>> Only objectified primitive objects, String, Map and List types are
>>>>> allowed
>>>>> but was: Trigger 'docs.consumer':  triggerClass:
>>>>> 'org.quartz.CronTrigger
>>>>> isVolatile: false calendar: 'null' misfireInstruction: 0 nextFireTime:
>>>>> Fri
>>>>> Jan 04 07:17:55 PST 2008 type: class org.quartz.CronTrigger
>>>>>
>>>>> Patrrick
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p14633631.html
>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p14646017.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p20578240.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p20578863.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: From Quartz to queue

Posted by Claus Ibsen <cl...@gmail.com>.
Hi Daniel

Could you write what version of Camel you are using and what JMS
broker and versions you are sending the message to?

And maybe pasting a fresh snippet of the stacktrace/error would help.
The original problem is nearly 1 year old.



/Claus Ibsen
Apache Camel Committer
Blog: http://davsclaus.blogspot.com/



On Wed, Nov 19, 2008 at 12:51 PM, Daniel Wu <da...@gmail.com> wrote:
>
> Hi,
> I'm also having these error messages with routes that start from a quartz
> endpoint. Is the line map.put("trigger", trigger); from the QuartzMessage
> class correct/necessary? I'm using
>
>
> Patrick Shea wrote:
>>
>> I'm using 1.2.0 with an internal activemq connection (same results when
>> using geronimo 2.0.2 with buitin activemq).
>>
>> I think the problem is in the QuartzMessage object, it's adding a Trigger
>> object to the header.
>>
>> @Override
>>     protected void populateInitialHeaders(Map<String, Object> map) {
>>         super.populateInitialHeaders(map);
>>         if (jobExecutionContext != null) {
>>             map.put("calendar", jobExecutionContext.getCalendar());
>>             map.put("fireTime", jobExecutionContext.getFireTime());
>>             map.put("jobDetail", jobExecutionContext.getJobDetail());
>>             map.put("jobInstance", jobExecutionContext.getJobInstance());
>>             map.put("jobRunTime", jobExecutionContext.getJobRunTime());
>>             map.put("mergedJobDataMap",
>> jobExecutionContext.getMergedJobDataMap());
>>             map.put("nextFireTime",
>> jobExecutionContext.getNextFireTime());
>>             map.put("previousFireTime",
>> jobExecutionContext.getPreviousFireTime());
>>             map.put("refireCount", jobExecutionContext.getRefireCount());
>>             map.put("result", jobExecutionContext.getResult());
>>             map.put("scheduledFireTime",
>> jobExecutionContext.getScheduledFireTime());
>>             map.put("scheduler", jobExecutionContext.getScheduler());
>>             Trigger trigger = jobExecutionContext.getTrigger();
>>  --> Bad?   map.put("trigger", trigger);
>>             map.put("triggerName", trigger.getName());
>>             map.put("triggerGroup", trigger.getGroup());
>>         }
>>     }
>>
>> -----Original Message-----
>> From: davsclaus <ci...@yahoo.dk>
>> Sent: Sunday, January 6, 2008 2:28am
>> To: camel-user@activemq.apache.org
>> Subject: Re: From Quartz to queue
>>
>>
>> What version of Camel are you using and witch JMS container are you using?
>>
>> I think in the 1.3 branch there is a fix for removing non valid header
>> keys
>> (eg. not allowed to contain (dot) . in the key name etc.) according to the
>> JMS spec.
>>
>> /Claus
>>
>>
>>
>> Patrick Shea wrote:
>>>
>>> I think I found the problem, I misunderstood the concept of in/out in a
>>> processor, I was using the out to add my payload while the quartz object
>>> was still in the in body.
>>>
>>> But the real problem was with the in header. I had to clear the in header
>>> to make this work, somehow the header contained something that jms didn't
>>> like.
>>>
>>> Patrick
>>>
>>> -----Original Message-----
>>> From: davsclaus <ci...@yahoo.dk>
>>> Sent: Saturday, January 5, 2008 6:21am
>>> To: camel-user@activemq.apache.org
>>> Subject: Re: From Quartz to queue
>>>
>>>
>>> Patrick
>>>
>>> To get faster and better feedback I think you should show us the code and
>>> configuration that causes the problem.
>>>
>>> Maybe creating a small unit test that demonstrates the bug so the Camel
>>> team
>>> can use this when they find and fix the bug.
>>>
>>> /Claus
>>>
>>>
>>> Patrick Shea wrote:
>>>>
>>>> Hi, it seems that anything starting with a quartz endpoint has issues
>>>> going to a jms queue.
>>>>
>>>> I to have a processor to add a string payload to the out message but
>>>> somehow the jms message contains some quartz object that get rejected by
>>>> the jms queue.
>>>>
>>>> I have this as an error message:
>>>>
>>>> Only objectified primitive objects, String, Map and List types are
>>>> allowed
>>>> but was: Trigger 'docs.consumer':  triggerClass: 'org.quartz.CronTrigger
>>>> isVolatile: false calendar: 'null' misfireInstruction: 0 nextFireTime:
>>>> Fri
>>>> Jan 04 07:17:55 PST 2008 type: class org.quartz.CronTrigger
>>>>
>>>> Patrrick
>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p14633631.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p14646017.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/From-Quartz-to-queue-tp14618552s22882p20578240.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>