【问题标题】:How to use message converters with MessageListener in JMS?如何在 JMS 中使用带有 MessageListener 的消息转换器?
【发布时间】:2018-02-22 22:58:49
【问题描述】:

我正在使用 JmsTemplate 来转换和发送事件对象。我已经用 JmsTemplate 注册了 MappingJackson2MessageConverter。

Event event;
jmsTemplate.convertAndSend(topic, event);

我正在使用DefaultMessageListenerContainer 并从该主题获取消息。我不知道如何将此消息转换回我的对象​​?

我的 JmsTemplate 消息转换器是

public MessageConverter jacksonJmsMessageConverter() {
        MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
        converter.setTargetType(MessageType.TEXT);
        converter.setTypeIdPropertyName("_type");
        return converter;
    }

我曾尝试调用MappingJackson2MessageConverter 并将此消息对象传递给转换,但没有成功。 如何将收到的消息对象转换为我想要的自定义对象?

@Bean
        public DefaultMessageListenerContainer listenerContainer() {
            DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
            container.setConnectionFactory(connectionFactory());
            container.setDestinationName(COMMENT_QUEUE);
            container.setPubSubDomain(true);
            container.setMessageListener(new AcListenerSubscriber());
            container.start();

            return container;
        } 

【问题讨论】:

    标签: java spring-boot jms spring-jms


    【解决方案1】:

    MessageConverter 仅在您使用 @JmsListener 注释创建侦听器时应用。

    对于像您的AcListenerSubscriber 这样的MessageListener,它会被忽略。

    【讨论】:

      猜你喜欢
      • 2019-10-08
      • 2013-09-18
      • 1970-01-01
      • 1970-01-01
      • 2012-04-28
      • 2010-09-28
      • 2013-04-17
      • 2012-08-04
      • 2010-12-07
      相关资源
      最近更新 更多