Olá, tudo bem?
Poderiam me ajudar a entender o erro? Quando eu tento finalizar a compra, retorna esse erro na parte de encontrar o email do usuario.
java.lang.NullPointerException
at br.com.casadocodigo.loja.controllers.PagamentoController.enviaEmailCompraProduto(PagamentoController.java:65)
at br.com.casadocodigo.loja.controllers.PagamentoController.lambda$finalizar$0(PagamentoController.java:52)
at org.springframework.web.context.request.async.WebAsyncManager$4.run(WebAsyncManager.java:322)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.lang.Thread.run(Thread.java:748)
Classe PagemtoController
@RequestMapping("/pagamento")
@Controller
@Scope(value = WebApplicationContext.SCOPE_REQUEST)
public class PagamentoController {
@Autowired
private CarrinhoCompras carrinho;
@Autowired
private RestTemplate restTemplate;
@Autowired
private MailSender sender;
@RequestMapping(value="/finalizar", method=RequestMethod.POST)
public Callable<ModelAndView> finalizar(@AuthenticationPrincipal Usuario usuario, RedirectAttributes model){
return () -> {
String uri = "http://book-payment.herokuapp.com/payment";
try {
String response = restTemplate.postForObject(uri,
new DadosPagamento(carrinho.getTotal()), String.class);
model.addFlashAttribute("sucesso", response);
System.out.println(response);
//método para tirar todos os livros do carrinho
this.carrinho.limpa();
// envia e-mail para o usuário
enviaEmailCompraProduto(usuario);
return new ModelAndView("redirect:/produtos");
} catch (HttpClientErrorException e) {
e.printStackTrace();
model.addFlashAttribute("falha", "Valor maior que o permitido");
return new ModelAndView("redirect:/produtos");
}
};
}
private void enviaEmailCompraProduto(Usuario usuario){
SimpleMailMessage email = new SimpleMailMessage();
email.setSubject("Compra finalizada com sucesso");
email.setTo(usuario.getEmail());
email.setText("Compra aprovada com sucesso no valor de "
+ carrinho.getTotal());
email.setFrom("compras@casadocodigo.com.br");
sender.send(email);
}
}