2017-06-14 31 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。