No Postman, ao executar o método post inserindo o body e configurando o header, está retornando o erro "500 Internal Server Error"
Consegue me ajudar?
No Postman, ao executar o método post inserindo o body e configurando o header, está retornando o erro "500 Internal Server Error"
Consegue me ajudar?
Oi Jacqueline,
Se deu erro 500 significa que o postman enviou a requisição normalmente, mas ocorreu algum problema no projeto ao processá-la.
Manda aqui como você enviou o json com as informações e também poste aqui o código da suas classes TopicosController e TopicoForm.
Segue:
arquivo json: { "titulo":"Dúvida Postman", "mensagem":"Texto da mensagem", "nomeCurso":"Spring Boot" }
classe TopicosController:
@RestController @RequestMapping("/topicos") public class TopicosController { @Autowired private TopicoRepository topicoRepository; private CursoRepository cursoRepository;
@GetMapping
public List<TopicoDto> lista(String nomeCurso)
{
if(nomeCurso == null)
{
List<Topico> topicos = topicoRepository.findAll();
return TopicoDto.converter(topicos);
}
else
{
List<Topico> topicos = topicoRepository.findByCursoNome(nomeCurso);
return TopicoDto.converter(topicos);
}
}
@PostMapping
public ResponseEntity<TopicoDto> cadastrar(@RequestBody TopicoForm form, UriComponentsBuilder uriBuilder)
{
Topico topico = form.converter(cursoRepository);
topicoRepository.save(topico);
URI uri = uriBuilder.path("/topicos/{id}").buildAndExpand(topico.getId()).toUri();
return ResponseEntity.created(uri).body(new TopicoDto(topico));
}
}
classe TopicoForm
public class TopicoForm { private String titulo; private String mensagem; private String nomeCurso;
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getMensagem() {
return mensagem;
}
public void setMensagem(String mensagem) {
this.mensagem = mensagem;
}
public String getNomeCurso() {
return nomeCurso;
}
public void setNomeCurso(String nomeCurso) {
this.nomeCurso = nomeCurso;
}
public Topico converter(CursoRepository cursoRepository)
{
Curso curso = cursoRepository.findByNome(nomeCurso);
return new Topico(titulo, mensagem, curso);
}
}
O mais estranho é que executou certinho o método GET. Pode me ajudar, por favor?
Qual exception aparece no Eclipse quando você envia a requisição pelo Postman?
Oi, este é o erro:
2020-08-16 19:07:34.884 ERROR 13484 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException: null
Na sua classe TopicosController faltou o @Autowired
em cima do atributo CursoRepository e por isso está dando NullPointerException.
Ops rsrs MUITO obrigada!!!! Agora deu certo :)