Prezados,
assim como ocorreu no vídeo da aula, ao tentar finalizar a compra de um produto, em vez de redirecionar para a página indicada, ocorre um erro 500.
Apesar de o problema ter sido ignorado durante a aula, estou tentando resolvê-lo, porém ainda não obtive sucesso.
Alguém poderia me ajudar?
Segue código da action do controller:
@Controller
@RequestMapping("/pagamento")
public class PagamentoController {
@Autowired
private CarrinhoCompras carrinhoCompras;
@Autowired
private ProdutoRepository produtoRepository;
@Autowired
private RestTemplate restTemplate;
@RequestMapping(value = "/finalizar", method = RequestMethod.POST)
public Callable<ModelAndView> finalizar(RedirectAttributes redirectAttributes) {
final String URL = "http://book-payment.herokuapp.com/payment";
return () -> {
try {
String result = restTemplate.postForObject(URL, new DadosPagamento(carrinhoCompras.getTotal()), String.class);
System.out.println(result);
redirectAttributes.addFlashAttribute("message", result);
} catch (HttpClientErrorException e) {
redirectAttributes.addFlashAttribute("error", "Valor maior que o permitido");
e.printStackTrace();
}
return new ModelAndView("redirect:/produto");
};
}
}
Pelo que pude ver, o problema aparentemente está na linha:
String result = restTemplate.postForObject(URL, new DadosPagamento(carrinhoCompras.getTotal()), String.class);
Porém, testando através do postman, enviando o seguinte JSON via POST o resultado é 200:
{
"value": 49.9
}
Analisando a exception do servidor, não consegui entender detalhes do problema:
18-Jul-2017 13:03:46.763 GRAVE [http-nio-8080-exec-4] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [dispatcher] in context with path [/spring-mvc] threw exception [Request processing failed; nested exception is org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error] with root cause
org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:66)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:700)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:653)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:613)
at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:380)
at br.com.jmsstudio.controller.PagamentoController.lambda$finalizar$0(PagamentoController.java:39)
at org.springframework.web.context.request.async.WebAsyncManager$4.run(WebAsyncManager.java:316)
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)
Mais alguém teve problema parecido?
Caso sejam necessários mais detalhes, segue link do projeto no github: https://github.com/jmsstudio/aprendendo-spring-mvc