2011-11-09 48 views
1

我从红宝石脚本使用跺脚跺脚内容类型报头设置为纯对XML内容

发送XML内容的ActiveMQ

我明确地设置内容类型报头toapplication/XML;字符集= UTF- 8如下所示

client.publish queue, xml, {'content-type'=>'application/xml;charset=utf-8'} 

但是,当我从使用弹簧整合到读取该消息的Java客户端读取的消息中的内容类型为text/plain。

当解组调用解析失败与异常的结果

1448446 [org.springframework.jms.listener.DefaultMessageListenerContainer#0-1] WARN org.springframework.jms.listener.DefaultMessageListenerContainer - Execution of JMS message listener failed 
org.springframework.integration.transformer.MessageTransformationException: failed to transform message payload 
    at org.springframework.integration.transformer.AbstractPayloadTransformer.transform(AbstractPayloadTransformer.java:40) 
    at org.springframework.integration.transformer.MessageTransformingHandler.handleRequestMessage(MessageTransformingHandler.java:49) 
    at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:91) 
    at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:59) 
    at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:103) 
    at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:90) 
    at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:43) 
    at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:116) 
    at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:94) 
    at org.springframework.integration.channel.MessageChannelTemplate.doSend(MessageChannelTemplate.java:223) 
    at org.springframework.integration.channel.MessageChannelTemplate.send(MessageChannelTemplate.java:180) 
    at org.springframework.integration.router.AbstractMessageRouter.handleMessageInternal(AbstractMessageRouter.java:76) 
    at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:59) 
    at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:103) 
    at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:90) 
    at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:43) 
    at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:116) 
    at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:94) 
    at org.springframework.integration.channel.MessageChannelTemplate.doSend(MessageChannelTemplate.java:223) 
    at org.springframework.integration.channel.MessageChannelTemplate.send(MessageChannelTemplate.java:180) 
    at org.springframework.integration.channel.MessageChannelTemplate.send(MessageChannelTemplate.java:168) 
    at org.springframework.integration.jms.ChannelPublishingJmsMessageListener.onMessage(ChannelPublishingJmsMessageListener.java:203) 
    at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:518) 
    at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:479) 
    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:680) 
Caused by: org.springframework.integration.core.MessagingException: Failed to create Source for payload type [[B] 
    at org.springframework.integration.xml.source.DomSourceFactory.createSource(DomSourceFactory.java:62) 
    at org.springframework.integration.xml.transformer.XmlPayloadUnmarshallingTransformer.transformPayload(XmlPayloadUnmarshallingTransformer.java:91) 
    at org.springframework.integration.transformer.AbstractPayloadTransformer.transform(AbstractPayloadTransformer.java:33) 
    ... 30 more 

什么能找到答案的问题

+0

当您从Ruby客户端读取时会发生什么? –

+0

@Mark,当从ruby客户端读取时,内容被正确读取 – Manoj

回答

2

,其头部suppress_content_length 增加,这使得它的工作

:suppress_content_length => true