Boa tarde pessoal, alguém pode dar um auxílio? Não está gerando JSON após criar os interceptador. Segui os passos colocados pelo professor mais meu JSON não aparece, aparece as chaves vazias. Podem me ajudar? Vou postar o código
package br.com.alura.mvc.mudi.interceptor;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class InterceptadorDeAcessos extends HandlerInterceptorAdapter{
public static List<Acesso> acessos = new ArrayList<Acesso>();
/**
* Método de filtro em spring chamado de Interceptor. Coleta os dados de todas as requisoções
* da aplicação quando é invocado.
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
Acesso acesso = new Acesso();
acesso.path = request.getRequestURI();
acesso.data = LocalDateTime.now();
request.setAttribute("acesso", acesso);
return true;
}
/**
*
*/
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
Acesso acesso = (Acesso)request.getAttribute("acesso");
acesso.duracao = Duration.between(acesso.data, LocalDateTime.now());
acessos.add(acesso);
}
public static class Acesso {
private String path;
private LocalDateTime data;
private Duration duracao;
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public LocalDateTime getData() {
return data;
}
public void setData(LocalDateTime data) {
this.data = data;
}
public Duration getDuracao() {
return duracao;
}
public void setDuracao(Duration duracao) {
this.duracao = duracao;
}
}
}
A classe WebConfig
package br.com.alura.mvc.mudi;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import br.com.alura.mvc.mudi.interceptor.InterceptadorDeAcessos;
public class WebConfig extends WebMvcConfigurationSupport{
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new InterceptadorDeAcessos()).addPathPatterns("/**");
}
}
E a classe REST
package br.com.alura.mvc.mudi.api;
import java.util.List;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import br.com.alura.mvc.mudi.interceptor.InterceptadorDeAcessos;
import br.com.alura.mvc.mudi.interceptor.InterceptadorDeAcessos.Acesso;
@RequestMapping("acessos")
@RestController
public class AcessosREST {
@GetMapping
public List<Acesso> getAcessos() {
return InterceptadorDeAcessos.acessos;
}
}