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

Reply via email to