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

Objeto com LocalDate

Estou recebendo esse erro: DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Expected array or string.; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Expected array or string.

Estou enviando um objeto de minha aplicação cliente para o servidor rest, dentro do objeto tenho alguns atributos LocalDate e quando a requisição é enviada para este servidor ele informar que não conseguiu converter o Objeto JSON dando erro na data.

objeto Dto cliente e servidor são o mesmo:

public class FuncionarioDto { private Long id; private String nome; private String cpf; private String telefone; private String telefoneResidencial; private String tituloEleitor; private int grauDeInstrucao; private Integer status; private String foto; private LocalDate data; private LocalDate dataAdmissao; private LocalDate dataDemissao;

Service cliente:

public Response registrar(FuncionarioDto form) {

    this.webTarget = this.client.target(URL_SERVICE);

    Invocation.Builder invocationBuilder = this.webTarget.request("application/json;charset=UTF-8")
            .header(HttpHeaders.AUTHORIZATION, token);

    return invocationBuilder.post(Entity.entity(form, "application/json;charset=UTF-8"));
}

Controller:

@PostMapping @Transactional @CacheEvict(value = "listaFuncionario", allEntries = true) public ResponseEntity registrar(@RequestBody @Valid FuncionarioDto form, UriComponentsBuilder uriComponentsBuilder) { Funcionario funcionario = new Funcionario(form); }

Preciso de uma luz sobre isso, agradeço muito por uma ajuda.

2 respostas

Oi Wallyson!

A principio esta certinho o codigo. So precisaria ver se tem como imprimir(gerar um log ou um system.out.println) o json que esta sendo enviado do lado do cliente para o servidor, pois pode ser que ele esteja sendo gerado com algum caractere incorreto e isso cause um erro no Spring.

solução!

Muito obrigado Rodrigo, consegui achar o erro. Ao criar o JSON da data o formato enviado não era o mesmo do destino, modifiquei e funcionou como esperado.