On Thu, May 20, 2010 at 4:29 PM, dlawson <david.law...@metastorm.com> wrote: > > Claus: > > The first solution seems the easiest. Is it as simple as adding the binding > option to the endpoint and then creating a subclass of JmsBinding that > overrides the "getValidJMSHeaderValue" method? I'm fuzzy on how to get the > bean into the registry for lookup. Thanks, >
Yeah that is how you can do it. If you use Spring then just add a <bean id="myCustomBidning"/> If not then you can use the SimpleRegistry and pass it to DefaultCamelContext when creating it. Or read chapter 3 in the Camel in Action book for details about Registry. > David > > > Claus Ibsen-2 wrote: >> >> Hi >> >> I have created a ticket >> https://issues.apache.org/activemq/browse/CAMEL-2742 >> >> You could most likely use a custom JMSBinding by setting it on the >> endpoint uri >> >> to("mq:xxxx?binding=#myCustomBinding"); >> >> And then myCustomBinding is the id of a bean in the registry to lookup >> as a JmsBinding type. >> >> Otherwise if you do not need the given property you can also provide a >> custom header filter strategy where you can skip this header. >> Or use a custom messageConverter when you can do all the mapping yourself. >> >> >> On Thu, May 20, 2010 at 2:26 PM, dlawson <david.law...@metastorm.com> >> wrote: >>> >>> To All: >>> >>> >>> I am experiencing a problem when routing a Camel message from ActiveMQ to >>> WebSphereMQ 7 using the JMSComponent. My Camel version is 2.2.0. As the >>> stack trace below indicates, >>> >>> the exception is thrown when the "JMS-IBM_Last_Msg_In_Group" >>> header/property >>> in the Camel Message is being mapped to the JMS message property. The >>> underlying JMS Message >>> >>> expects the field to be of type Boolean but Camel is delivering it as a >>> String. In the Camel JMSBinding class, the getValidJMSHeaderValue method >>> is >>> performing the following >>> >>> mapping: >>> >>> >>> 390 protected Object getValidJMSHeaderValue(String headerName, >>> Object >>> headerValue) { >>> 391 if (headerValue instanceof String) { >>> 392 return headerValue; >>> 393 } else if (headerValue instanceof Number) { >>> 394 return headerValue; >>> 395 } else if (headerValue instanceof Character) { >>> 396 return headerValue; >>> 397 } else if (headerValue instanceof CharSequence) { >>> 398 return headerValue.toString(); >>> 399 } else if (headerValue instanceof Boolean) { >>> 400 return headerValue.toString(); >>> 401 } else if (headerValue instanceof Date) { >>> 402 return headerValue.toString(); >>> 403 } >>> 404 return null; >>> 405 } >>> >>> Is there a way to specify a custom JMSBinding in this instance or do I >>> have >>> to patch the code to get around this problem? Thanks, >>> >>> David >>> >>> >>> >>> >>> org.springframework.jms.MessageFormatException: JMSCC0051: The property >>> 'JMS_IBM_Last_Msg_In_Group' should be set using type 'java.lang.Boolean', >>> not 'java.lang.String'.; >>> >>> nested exception is >>> com.ibm.msg.client.jms.DetailedMessageFormatException: >>> JMSCC0051: The property 'JMS_IBM_Last_Msg_In_Group' should be set using >>> type >>> 'java.lang.Boolean', >>> >>> not 'java.lang.String'. JMS_IBM properties may only be set using a >>> specific >>> variable type. Correct application code to use the required variable type >>> when setting this JMS_IBM >>> >>> property. >>> at >>> org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:289) >>> at >>> org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168) >>> at >>> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:474) >>> at >>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:195) >>> at >>> org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:375) >>> at >>> org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:320) >>> at >>> org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:150) >>> at >>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:97) >>> at >>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:95) >>> at >>> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146) >>> at >>> org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:94) >>> at >>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:82) >>> at >>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>> at >>> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) >>> at >>> org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) >>> at >>> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:93) >>> at >>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>> at >>> org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:177) >>> at >>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:143) >>> at >>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88) >>> at >>> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49) >>> at >>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) >>> at org.apache.camel.processor.Pipeline.process(Pipeline.java:74) >>> at >>> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:66) >>> at >>> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) >>> at >>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>> at >>> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:84) >>> at >>> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543) >>> at >>> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482) >>> at >>> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451) >>> at >>> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323) >>> at >>> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261) >>> at >>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982) >>> at >>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974) >>> at >>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876) >>> at java.lang.Thread.run(Thread.java:619) >>> Caused by: com.ibm.msg.client.jms.DetailedMessageFormatException: >>> JMSCC0051: >>> The property 'JMS_IBM_Last_Msg_In_Group' should be set using type >>> 'java.lang.Boolean', not >>> >>> 'java.lang.String'. JMS_IBM properties may only be set using a specific >>> variable type. Correct application code to use the required variable type >>> when setting this JMS_IBM >>> >>> property. >>> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >>> Method) >>> at >>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) >>> at >>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) >>> at java.lang.reflect.Constructor.newInstance(Constructor.java:513) >>> at >>> com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:313) >>> at >>> com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:390) >>> at >>> com.ibm.msg.client.jms.internal.JmsErrorUtils.createException(JmsErrorUtils.java:104) >>> at >>> com.ibm.msg.client.jms.internal.JmsMessageImpl.checkSettablePropertyName(JmsMessageImpl.java:1968) >>> at >>> com.ibm.msg.client.jms.internal.JmsMessageImpl.setObjectProperty(JmsMessageImpl.java:1502) >>> at com.ibm.jms.JMSMessage.setObjectProperty(JMSMessage.java:1421) >>> at >>> org.apache.camel.component.jms.JmsBinding.appendJmsProperty(JmsBinding.java:336) >>> at >>> org.apache.camel.component.jms.JmsBinding.appendJmsProperties(JmsBinding.java:300) >>> at >>> org.apache.camel.component.jms.JmsBinding.makeJmsMessage(JmsBinding.java:278) >>> at >>> org.apache.camel.component.jms.JmsProducer$2.createMessage(JmsProducer.java:316) >>> at >>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.doSendToDestination(JmsConfiguration.java:221) >>> at >>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration.java:164) >>> at >>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate$3.doInJms(JmsConfiguration.java:198) >>> at >>> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:471) >>> ... 33 more >>> DEBUG 19 May 2010 14:11:06,531 [DefaultErrorHandler:377] - This exchange >>> is >>> not handled so its marked as failed: Exchange[JmsMessage: >>> ActiveMQTextMessage {commandId = 5, >>> >>> responseRequired = true, messageId = >>> ID:DLAWSON701-58897-1274292657513-0:17:1:1:1, originalDestination = null, >>> originalTransactionId = null, producerId = ID:DLAWSON701-58897- >>> >>> 1274292657513-0:17:1:1, destination = queue://NEXUS.FTS.DATA.JMSNODE1, >>> transactionId = null, expiration = 0, timestamp = 1274292665860, arrival >>> = >>> 0, brokerInTime = >>> >>> 1274292665860, brokerOutTime = 1274292666034, correlationId = null, >>> replyTo >>> = null, persistent = true, type = null, priority = 4, groupID = >>> 9TTY5M6LGOH7NSWA2LY2K29V, >>> >>> groupSequence = 15, targetConsumerId = null, compressed = false, userID = >>> null, content = null, marshalledProperties = >>> org.apache.activemq.util.byteseque...@4e32c8, >>> >>> dataStructure = null, redeliveryCounter = 0, size = 0, properties = >>> {seqnum=15, JMS_IBM_Last_Msg_In_Group=true}, readOnlyProperties = true, >>> readOnlyBody = true, droppable = >>> >>> false, text = }] >>> DEBUG 19 May 2010 14:11:06,532 [Pipeline:99] - Message exchange has >>> failed >>> so breaking out of pipeline: Exchange[JmsMessage: ActiveMQTextMessage >>> {commandId = 5, >>> >>> responseRequired = true, messageId = >>> ID:DLAWSON701-58897-1274292657513-0:17:1:1:1, originalDestination = null, >>> originalTransactionId = null, producerId = ID:DLAWSON701-58897- >>> >>> 1274292657513-0:17:1:1, destination = queue://NEXUS.FTS.DATA.JMSNODE1, >>> transactionId = null, expiration = 0, timestamp = 1274292665860, arrival >>> = >>> 0, brokerInTime = >>> >>> 1274292665860, brokerOutTime = 1274292666034, correlationId = null, >>> replyTo >>> = null, persistent = true, type = null, priority = 4, groupID = >>> 9TTY5M6LGOH7NSWA2LY2K29V, >>> >>> groupSequence = 15, targetConsumerId = null, compressed = false, userID = >>> null, content = null, marshalledProperties = >>> org.apache.activemq.util.byteseque...@4e32c8, >>> >>> dataStructure = null, redeliveryCounter = 0, size = 0, properties = >>> {seqnum=15, JMS_IBM_Last_Msg_In_Group=true}, readOnlyProperties = true, >>> readOnlyBody = true, droppable = >>> >>> false, text = }] Exception: >>> org.springframework.jms.MessageFormatException: >>> JMSCC0051: The property 'JMS_IBM_Last_Msg_In_Group' should be set using >>> type >>> 'java.lang.Boolean', >>> >>> not 'java.lang.String'.; nested exception is >>> com.ibm.msg.client.jms.DetailedMessageFormatException: JMSCC0051: The >>> property 'JMS_IBM_Last_Msg_In_Group' should be set using >>> >>> type 'java.lang.Boolean', not 'java.lang.String'. JMS_IBM properties may >>> only be set using a specific variable type. Correct application code to >>> use >>> the required variable type >>> >>> when setting this JMS_IBM property. >>> ERROR 19 May 2010 14:11:06,533 [EndpointMessageListener:248] - Caused by: >>> [org.apache.camel.RuntimeCamelException - >>> org.springframework.jms.MessageFormatException: JMSCC0051: >>> >>> The property 'JMS_IBM_Last_Msg_In_Group' should be set using type >>> 'java.lang.Boolean', not 'java.lang.String'.; nested exception is >>> >>> com.ibm.msg.client.jms.DetailedMessageFormatException: JMSCC0051: The >>> property 'JMS_IBM_Last_Msg_In_Group' should be set using type >>> 'java.lang.Boolean', not >>> >>> 'java.lang.String'. JMS_IBM properties may only be set using a specific >>> variable type. Correct application code to use the required variable type >>> when setting this JMS_IBM >>> >>> property.] >>> org.apache.camel.RuntimeCamelException: >>> org.springframework.jms.MessageFormatException: JMSCC0051: The property >>> 'JMS_IBM_Last_Msg_In_Group' should be set using type >>> >>> 'java.lang.Boolean', not 'java.lang.String'.; nested exception is >>> com.ibm.msg.client.jms.DetailedMessageFormatException: JMSCC0051: The >>> property 'JMS_IBM_Last_Msg_In_Group' >>> >>> should be set using type 'java.lang.Boolean', not 'java.lang.String'. >>> JMS_IBM properties may only be set using a specific variable type. >>> Correct >>> application code to use the >>> >>> required variable type when setting this JMS_IBM property. >>> at >>> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1055) >>> at >>> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:104) >>> at >>> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543) >>> at >>> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482) >>> at >>> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451) >>> at >>> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323) >>> at >>> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261) >>> at >>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982) >>> at >>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974) >>> at >>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876) >>> at java.lang.Thread.run(Thread.java:619) >>> Caused by: org.springframework.jms.MessageFormatException: JMSCC0051: The >>> property 'JMS_IBM_Last_Msg_In_Group' should be set using type >>> 'java.lang.Boolean', not >>> >>> 'java.lang.String'.; nested exception is >>> com.ibm.msg.client.jms.DetailedMessageFormatException: JMSCC0051: The >>> property 'JMS_IBM_Last_Msg_In_Group' should be set using type >>> >>> 'java.lang.Boolean', not 'java.lang.String'. JMS_IBM properties may only >>> be >>> set using a specific variable type. Correct application code to use the >>> required variable type when >>> >>> setting this JMS_IBM property. >>> at >>> org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:289) >>> at >>> org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168) >>> at >>> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:474) >>> at >>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:195) >>> at >>> org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:375) >>> at >>> org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:320) >>> at >>> org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:150) >>> at >>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:97) >>> at >>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:95) >>> at >>> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146) >>> at >>> org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:94) >>> at >>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:82) >>> at >>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>> at >>> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) >>> at >>> org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) >>> at >>> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:93) >>> at >>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>> at >>> org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:177) >>> at >>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:143) >>> at >>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88) >>> at >>> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49) >>> at >>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) >>> at org.apache.camel.processor.Pipeline.process(Pipeline.java:74) >>> at >>> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:66) >>> at >>> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) >>> at >>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>> at >>> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:84) >>> ... 9 more >>> Caused by: com.ibm.msg.client.jms.DetailedMessageFormatException: >>> JMSCC0051: >>> The property 'JMS_IBM_Last_Msg_In_Group' should be set using type >>> 'java.lang.Boolean', not >>> >>> 'java.lang.String'. JMS_IBM properties may only be set using a specific >>> variable type. Correct application code to use the required variable type >>> when setting this JMS_IBM >>> >>> property. >>> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >>> Method) >>> at >>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) >>> at >>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) >>> at java.lang.reflect.Constructor.newInstance(Constructor.java:513) >>> at >>> com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:313) >>> at >>> com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:390) >>> at >>> com.ibm.msg.client.jms.internal.JmsErrorUtils.createException(JmsErrorUtils.java:104) >>> at >>> com.ibm.msg.client.jms.internal.JmsMessageImpl.checkSettablePropertyName(JmsMessageImpl.java:1968) >>> at >>> com.ibm.msg.client.jms.internal.JmsMessageImpl.setObjectProperty(JmsMessageImpl.java:1502) >>> at com.ibm.jms.JMSMessage.setObjectProperty(JMSMessage.java:1421) >>> at >>> org.apache.camel.component.jms.JmsBinding.appendJmsProperty(JmsBinding.java:336) >>> at >>> org.apache.camel.component.jms.JmsBinding.appendJmsProperties(JmsBinding.java:300) >>> at >>> org.apache.camel.component.jms.JmsBinding.makeJmsMessage(JmsBinding.java:278) >>> at >>> org.apache.camel.component.jms.JmsProducer$2.createMessage(JmsProducer.java:316) >>> at >>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.doSendToDestination(JmsConfiguration.java:221) >>> at >>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration.java:164) >>> at >>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate$3.doInJms(JmsConfiguration.java:198) >>> at >>> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:471) >>> ... 33 more >>> WARN 19 May 2010 14:11:06,534 [DefaultMessageListenerContainer:646] - >>> Execution of JMS message listener failed >>> org.apache.camel.RuntimeCamelException: >>> org.springframework.jms.MessageFormatException: JMSCC0051: The property >>> 'JMS_IBM_Last_Msg_In_Group' should be set using type >>> >>> 'java.lang.Boolean', not 'java.lang.String'.; nested exception is >>> com.ibm.msg.client.jms.DetailedMessageFormatException: JMSCC0051: The >>> property 'JMS_IBM_Last_Msg_In_Group' >>> >>> should be set using type 'java.lang.Boolean', not 'java.lang.String'. >>> JMS_IBM properties may only be set using a specific variable type. >>> Correct >>> application code to use the >>> >>> required variable type when setting this JMS_IBM property. >>> at >>> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1055) >>> at >>> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:104) >>> at >>> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543) >>> at >>> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482) >>> at >>> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451) >>> at >>> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323) >>> at >>> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261) >>> at >>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982) >>> at >>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974) >>> at >>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876) >>> at java.lang.Thread.run(Thread.java:619) >>> Caused by: org.springframework.jms.MessageFormatException: JMSCC0051: The >>> property 'JMS_IBM_Last_Msg_In_Group' should be set using type >>> 'java.lang.Boolean', not >>> >>> 'java.lang.String'.; nested exception is >>> com.ibm.msg.client.jms.DetailedMessageFormatException: JMSCC0051: The >>> property 'JMS_IBM_Last_Msg_In_Group' should be set using type >>> >>> 'java.lang.Boolean', not 'java.lang.String'. JMS_IBM properties may only >>> be >>> set using a specific variable type. Correct application code to use the >>> required variable type when >>> >>> setting this JMS_IBM property. >>> at >>> org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:289) >>> at >>> org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168) >>> at >>> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:474) >>> at >>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:195) >>> at >>> org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:375) >>> at >>> org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:320) >>> at >>> org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:150) >>> at >>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:97) >>> at >>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:95) >>> at >>> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146) >>> at >>> org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:94) >>> at >>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:82) >>> at >>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>> at >>> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) >>> at >>> org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) >>> at >>> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:93) >>> at >>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>> at >>> org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:177) >>> at >>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:143) >>> at >>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88) >>> at >>> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49) >>> at >>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) >>> at org.apache.camel.processor.Pipeline.process(Pipeline.java:74) >>> at >>> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:66) >>> at >>> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) >>> at >>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>> at >>> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:84) >>> ... 9 more >>> Caused by: com.ibm.msg.client.jms.DetailedMessageFormatException: >>> JMSCC0051: >>> The property 'JMS_IBM_Last_Msg_In_Group' should be set using type >>> 'java.lang.Boolean', not >>> >>> 'java.lang.String'. JMS_IBM properties may only be set using a specific >>> variable type. Correct application code to use the required variable type >>> when setting this JMS_IBM >>> >>> property. >>> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >>> Method) >>> at >>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) >>> at >>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) >>> at java.lang.reflect.Constructor.newInstance(Constructor.java:513) >>> at >>> com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:313) >>> at >>> com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:390) >>> at >>> com.ibm.msg.client.jms.internal.JmsErrorUtils.createException(JmsErrorUtils.java:104) >>> at >>> com.ibm.msg.client.jms.internal.JmsMessageImpl.checkSettablePropertyName(JmsMessageImpl.java:1968) >>> at >>> com.ibm.msg.client.jms.internal.JmsMessageImpl.setObjectProperty(JmsMessageImpl.java:1502) >>> at com.ibm.jms.JMSMessage.setObjectProperty(JMSMessage.java:1421) >>> at >>> org.apache.camel.component.jms.JmsBinding.appendJmsProperty(JmsBinding.java:336) >>> at >>> org.apache.camel.component.jms.JmsBinding.appendJmsProperties(JmsBinding.java:300) >>> at >>> org.apache.camel.component.jms.JmsBinding.makeJmsMessage(JmsBinding.java:278) >>> at >>> org.apache.camel.component.jms.JmsProducer$2.createMessage(JmsProducer.java:316) >>> at >>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.doSendToDestination(JmsConfiguration.java:221) >>> at >>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration.java:164) >>> at >>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate$3.doInJms(JmsConfiguration.java:198) >>> at >>> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:471) >>> >>> -- >>> View this message in context: >>> http://old.nabble.com/jmsbinding-problem-tp28620489p28620489.html >>> Sent from the Camel - Users mailing list archive at Nabble.com. >>> >>> >> >> >> >> -- >> Claus Ibsen >> Apache Camel Committer >> >> Author of Camel in Action: http://www.manning.com/ibsen/ >> Open Source Integration: http://fusesource.com >> Blog: http://davsclaus.blogspot.com/ >> Twitter: http://twitter.com/davsclaus >> >> > > -- > View this message in context: > http://old.nabble.com/jmsbinding-problem-tp28620489p28622030.html > Sent from the Camel - Users mailing list archive at Nabble.com. > > -- Claus Ibsen Apache Camel Committer Author of Camel in Action: http://www.manning.com/ibsen/ Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus