ActiveMq消息转换器无法与JmsTemplate一起使用

时间:2020-05-12 17:21:09

标签: spring activemq

我正在使用spring JmsTemplate和AMQ作为消息代理。以下是我完成的代码。我创建Jmstemplate,然后设置MessageCoverter。但是当我这样做时,系统会抛出一个错误。

private JmsTemplate createJmsTemplate(final MappingJackson2MessageConverter messageConverter) {
    JmsTemplate jmsTemplate = new JmsTemplate();
    jmsTemplate.setConnectionFactory(connectionFactory());
    jmsTemplate.setSessionAcknowledgeMode(Session.SESSION_TRANSACTED);
    jmsTemplate.setDeliveryMode(DeliveryMode.PERSISTENT);
    jmsTemplate.setSessionTransacted(true);
    jmsTemplate.setMessageConverter(messageConverter);
    return jmsTemplate;
}

@Bean(name = "messageConverter")
@Lazy
public CorrelationIdAwareMappingJackson2MessageConverter messageConverter() {
    CorrelationIdAwareMappingJackson2MessageConverter messageConverter = new CorrelationIdAwareMappingJackson2MessageConverter();
    messageConverter.setTypeIdPropertyName("__type");
    return messageConverter;
}

@Component
public class JmsTestSubscriber {

        private TestService testService;

        @Autowired
        public JmsTestSubscriber(final TestService testService) {
            this.testService = testService;
        }

        @JmsListener(destination = "test.queue", containerFactory = "jmsTestFactory")
        public boolean receiveMessage(final EntityEvent entityEvent) {
            log.info(entityEvent.toString());
            return true;
        }

    }

    cannot convert

从[[B]到[com.test.dto.TestEvent]。

现在,如果我删除消息转换器,则其工作正常。 有人可以帮我吗

0 个答案:

没有答案