我正在使用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]。
现在,如果我删除消息转换器,则其工作正常。 有人可以帮我吗