Tenho uma aplicação que tem funcionado bem, mas ultimamente tem apresentado um problema que eu não tenho conseguido entender. A aplicação é com SpringBoot 2.7.
Eu tenho uma entidade Cliente, e um endpoint POST para cadastrar esse cliente. Na maioria do tempo funciona bem, mas depois de um determinado tempo, passa a ocorrer um erro, mas se eu reiniciar o servidor, a mesma requisição passa sem problema.
Segue o erro:
com.fasterxml.jackson.databind.exc.MismatchedInputException: No _valueDeserializer assigned\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 15, column: 13] (through reference chain: br.com.attomtech.allanlimarefrigeracao.api.model.Cliente[\"produtos\"]->java.util.ArrayList[0]->br.com.attomtech.allanlimarefrigeracao.api.model.Produto[\"serie\"])
Segue exemplo do body da requisição:
{
"documento": "123.456.789-00",
"isPessoaFisica": true,
"endereco": {
"cep": "12.345-678",
"logradouro": "Rua A",
"bairro": "Bairro B",
"cidade": "Cidade C",
"estado": "XX",
"numero": "99"
},
"produtos": [
{
"serie": "SE1234",
"fabricante": "LG",
"tipo": "ARJANELAINVERTER",
"modelo": "WE12345",
"__index": 0
}
],
"nome": "Teste",
"email": "teste@gmail.com",
"telefone": "(21) 1234-56789"
}
Entidade Cliente:
@Entity
@Table(name = "cliente")
public class Cliente
{
public static final String CODIGO = "codigo",
NOME = "nome",
EMAIL = "email",
DOCUMENTO = "documento";
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long codigo;
@NotBlank(message = "O Nome é obrigatório")
private String nome;
@NotBlank(message = "O E-mail é obrigatório")
@Email(message = "Informe um E-mail válido!")
private String email;
@Column(name = "pessoa_fisica")
private Boolean isPessoaFisica;
private String documento;
@Embedded
private Endereco endereco;
@Valid @JsonIgnoreProperties("cliente")
@OneToMany(mappedBy = "cliente", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Produto> produtos;
private String telefone;
// getters and setters
}
Entidade Produto:
@Entity
@Table(name = "produto")
public class Produto
{
public static final String CODIGO = "codigo",
FABRICANTE = "fabricante",
TIPO = "tipo",
MODELO = "modelo",
SERIE = "serie",
CLIENTE = "cliente";
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long codigo;
@Enumerated(EnumType.STRING)
private Fabricante fabricante;
@Enumerated(EnumType.STRING)
private TipoProduto tipo;
@NotBlank
private String modelo;
@NotBlank
private String serie;
@Column(name = "meses_aviso")
private Integer mesesAviso;
@Column(name = "aviso_habilitado")
private Boolean avisoHabilitado;
@JsonIgnoreProperties("produtos")
@ManyToOne
@JoinColumn(name = "codigo_cliente")
private Cliente cliente;
@JsonIgnore
@OneToMany(mappedBy = "produto", fetch = FetchType.LAZY)
private List<OrdemServico> ordens;
// getters and setters
}
Alguém tem alguma ideia do que pode ser esse problema?