1
resposta

Spring não consegue executar após TópicoDto

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?

1 resposta

Vou fechar esse topico, pois esta duplicado com esse: https://cursos.alura.com.br/forum/topico-spring-nao-consegue-executar-apos-topicodto-109333

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software