Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro no método converter - DTO

Depois de criar a classe TopicoDto e inserir o método converter para retorna-lo na classe TopicosControler, o servidor apresentou erro

Classe TopicosController

package br.com.alura.forum.controller;

import br.com.alura.forum.controller.dto.TopicoDto;
import br.com.alura.forum.modelo.Curso;
import br.com.alura.forum.modelo.Topico;
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", "Dúvida com Spring", new Curso("Spring", "Programação"));
        return TopicoDto.coverter(Arrays.asList(topico, topico,topico));
    }
}

Classe TopicoDto


package br.com.alura.forum.controller.dto;

import br.com.alura.forum.modelo.Topico;
import java.time.LocalDateTime;
import java.util.List;
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 static List<TopicoDto> coverter(List<Topico> topicos) {
        return topicos.stream().map(TopicoDto::new).collect(Collectors.toList());
    }

    public long getId() {
        return id;
    }

    public String getTitulo() {
        return titulo;
    }

    public String getMensagem() {
        return mensagem;
    }

    public LocalDateTime getDataCriacao() {
        return dataCriacao;
    }
}
2 respostas

Segue o erro, mas não deu pra colar tudo porque é muito extenso

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.

Tue Jun 01 10:23:48 BRT 2021
There was an unexpected error (type=Internal Server Error, status=500).
No message available
java.lang.NullPointerException
solução!

Oi Lidianne,

Na classe TopicoDto o atributo id deve ser Long e não o long primitivo:

private Long id;

Não esqueça de alterar o método getId() também para Long.

Bons estudos!

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