Spring @JmsListener无法将json转换为对象

时间:2017-06-14 08:36:58

标签: java spring-boot jms spring-jms

我原以为@JmsListener会自动将json对象转换为我的对象,但是它的有效负载以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”,“name”:“2222”}

这在运行时失败了。

我的另一段代码是:

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

1 个答案:

答案 0 :(得分:0)

这取决于制片人发送的内容。

如果发送了TextMessage,则会得到一个String。如果发送了ObjectMessage,则可以获取Object。