5
respostas

Erro ao tentar finalizar uma compra.

Estou recebendo o seguinte erro quando tento finalizar uma compra.

Segue o link para o download do projeto. (Estava tentando implementar o envio de email.)

https://drive.google.com/open?id=0B7EfPZWJCiSwWGRGQXpZa3p3NUk

HTTP Status 500 - Request processing failed; nested exception is org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error

type Exception report

message Request processing failed; nested exception is org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:84)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:121)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
    org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
root cause

org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error
    org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:94)
    org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:667)
    org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:620)
    org.springframework.web.client.RestTemplate.execute(RestTemplate.java:580)
    org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:380)
    br.com.casadocodigo.loja.controller.PagamentoController.lambda$0(PagamentoController.java:38)
    org.springframework.web.context.request.async.WebAsyncManager$4.run(WebAsyncManager.java:316)
    java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    java.util.concurrent.FutureTask.run(Unknown Source)
    java.lang.Thread.run(Unknown Source)
5 respostas

Antes de olhar o fonte, sempre tentamos resolver por aqui.. Tem mais coisa na exception? De todo jeito,olhando só essa stack, parece que tem algo de errado com a sua comunicação com o outro sistema... Dado que o erro está no RestTemplate.

Será que tem alguma coisa a ver com a parte de segurança?

Tem o erro que do console que é esse: GRAVE: Servlet.service() for servlet dispatcher threw exception org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:94) at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:667) at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:620) at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:580) at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:380) at br.com.casadocodigo.loja.controller.PagamentoController.lambda$0(PagamentoController.java:35) 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:745)

nov 07, 2016 11:21:34 PM org.apache.catalina.core.StandardWrapperValve invoke GRAVE: Servlet.service() for servlet [dispatcher] in context with path [/casadocodigo] 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:94) at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:667) at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:620) at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:580) at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:380) at br.com.casadocodigo.loja.controller.PagamentoController.lambda$0(PagamentoController.java:35) 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:745)

Acho que é o que eu falei.. ta dando problema na hora de comunicar com o sistema externo.

Blz, mas o que pode tá atrapalhando essa comunicação, pois fiz o teste no endereço que foi passando no exercício de finalizar o pagamento e funcionou normalmente.

Alberto, achei o que estava atrapalhando a comunicação. Eu fiz a configuração para poder exportar produtos para xml conforme esse tópico: https://cursos.alura.com.br/forum/topico-retornar-o-produto-com-xml-21384

Quando eu comento a dependência abaixo e a adição da classe no AppWebConfiguration( "viewResolvers.add(new XmlViewResolver());" ) , o sistema volta a finalizar uma compra.

com.fasterxml.jackson.dataformat jackson-dataformat-xml 2.6.3

Você sabe como eu posso fazer para ter a exportação para o xml junto com a finalização da compra funcionando corretamente.