2017-06-14 67 views
2

我期待@JmsListener會自動將json對象轉換爲我的對象,但它的有效負載是以json格式而不是實際對象的形式返回數據。Spring @JmsListener無法將json轉換爲對象

@JmsListener(destination = "${default-queue-name-to-listen}") 
    public void receiveMessage(final Message<MyObject> message) throws JMSException { 
     logger.info("message received from the queue/topic : {}", message); 
     MyObject response = message.getPayload(); 
} 

但我們收到這樣的字符串形式迴應:{ 「ID」: 「1」, 「名」: 「2222」}

,這是在運行時失敗了。

我其他的代碼是:

@Bean 
public JmsListenerContainerFactory jmsListenerContainerFactory(ConnectionFactory connectionFactory) throws URLSyntaxException { 
    DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory(); 
    factory.setConnectionFactory(connectionFactory); 
    factory.setSubscriptionDurable(true); 
    factory.setPubSubDomain(true); 
    return factory; 
} 

回答

0

這取決於生產者發送的內容。

如果發送了TextMessage,則會得到一個String。如果發送了一個ObjectMessage,你可以得到一個Object。