no primeiro video do capitulo 3 usamos esse comando para a mensagem ficar registrada no habbit
@Configuration public class PagementoAmqpConfig {
@Bean
public Queue criarFila() {
// return new Queue("pagamento.concluido",false);
return QueueBuilder.nonDurable("pagamento.concluido").build();
}
@Bean
public RabbitAdmin criaRabbitAdmin(ConnectionFactory factory) {
return new RabbitAdmin(factory);
}
@Bean
public ApplicationListener<ApplicationReadyEvent> inicializaAdmin(RabbitAdmin rabbitAdmin) {
return event -> rabbitAdmin.initialize();
}
@Bean
public Jackson2JsonMessageConverter messageConverter() {
return new Jackson2JsonMessageConverter();
}
@Bean
public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory, Jackson2JsonMessageConverter messageConverter) {
RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
rabbitTemplate.setMessageConverter(messageConverter);
return rabbitTemplate;
}
}
entretanto mesmo depois de dar o post para salvar, ele salva normal mas a mensagem não é registrada em pagamentos.
@PostMapping
public ResponseEntity<PagamentoDto> cadastrar(@RequestBody @Valid PagamentoDto dto, UriComponentsBuilder uriBuilder) {
PagamentoDto pagamento = service.criarPagamento(dto);
URI endereco = uriBuilder.path("/pagamentos/{id}").buildAndExpand(pagamento.getId()).toUri();
rabbitTemplate.convertAndSend("pagamento.concluido", pagamento);
return ResponseEntity.created(endereco).body(pagamento);
}