Bom dia, estou com um problema após acessar o endpoint do localhost:8080/topicos depois que inseri a classe TopicosDto. Ele retorna este erro abaixo:
Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback.
Thu Apr 16 08:48:06 BRT 2020 There was an unexpected error (type=Internal Server Error, status=500). No message available java.lang.NullPointerException at br.com.alura.forum.controller.dto.TopicoDto.(TopicoDto.java:17) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
E por assim vai, várias linhas de erro, o problema ali é uma NullPointer, mas não sei como isso é possível minha classe está exatamente igual ao do vídeo (acho eu né). Segua a mesma abaixo
package br.com.alura.forum.controller.dto; import br.com.alura.forum.modelo.Topico;
import java.util.List; import java.time.LocalDateTime; import java.util.stream.Collectors;
public class TopicoDto {
private long id;
private String titulo;
private String mensagem;
private LocalDateTime dataCriacao;
public TopicoDto(Topico topico) {
this.id = topico.getId();
this.titulo = topico.getTitulo();
this.mensagem = topico.getMensagem();
this.dataCriacao = topico.getDataCriacao();
}
public long getId() {
return id;
}
public String getTitulo() {
return titulo;
}
public String getMensagem() {
return mensagem;
}
public LocalDateTime getDataCriacao() {
return dataCriacao;
}
public static List<TopicoDto> converter(List<Topico> topicos) {
return topicos.stream().map(TopicoDto::new).collect(Collectors.toList());
}
}
Agora a classe TopicosController:
package br.com.alura.forum.controller;
import br.com.alura.forum.modelo.Curso; import br.com.alura.forum.modelo.Topico; import br.com.alura.forum.controller.dto.TopicoDto; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays; import java.util.List;
@RestController public class TopicosController {
@RequestMapping("/topicos")
public List<TopicoDto> lista() {
Topico topico = new Topico("Duvida","Duvida com Spring", new Curso("Spring", "Programação"));
return TopicoDto.converter(Arrays.asList(topico, topico));
}
}
Alguém consegue me ajudar?