Error with.fasterxml.Jackson.databind.Jsonmappingexception

Asked

Viewed 416 times

0

Error shown:

04-25 14:01:32.589: I/Recebendo pela rede(31129): [{"id":"ab788cdc439","codcnesEquipe":"0","codcnesUnidade":"2161303","microarea":"00","nrcartaosus":"207283333540000","area":"0000","cbo":"322415","ativo":"1","datareg":"2016-09-22 11:25:31","codigoUsuario":"1039","status":"0","codigoUltimoUsuario":"1"}]
04-25 14:01:32.653: W/System.err(31129): com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of com.elo.saude.familia.modelo.EloUsuarios: no String-argument constructor/factory method to deserialize from String value ('1039')
04-25 14:01:32.654: W/System.err(31129):  at [Source: {"id":"ab788cdc439","codcnesEquipe":"0","codcnesUnidade":"2161303","microarea":"00","nrcartaosus":"207283333540000","area":"0000","cbo":"322415","ativo":"1","datareg":"2016-09-22 11:25:31","codigoUsuario":"1039","status":"0","codigoUltimoUsuario":"1"}; line: 1, column: 206] (through reference chain: com.elo.saude.familia.modelo.SfCadastrador["codigoUsuario"])
04-25 14:01:32.654: W/System.err(31129):    at com.fasterxml.jackson.databind.DeserializationContext.instantiationException(DeserializationContext.java:1456)
04-25 14:01:32.654: W/System.err(31129):    at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1012)
04-25 14:01:32.654: W/System.err(31129):    at com.fasterxml.jackson.databind.deser.ValueInstantiator._createFromStringFallbacks(ValueInstantiator.java:370)
04-25 14:01:32.654: W/System.err(31129):    at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.createFromString(StdValueInstantiator.java:315)
04-25 14:01:32.654: W/System.err(31129):    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromString(BeanDeserializerBase.java:1282)
04-25 14:01:32.654: W/System.err(31129):    at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:159)
04-25 14:01:32.654: W/System.err(31129):    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:150)
04-25 14:01:32.654: W/System.err(31129):    at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:499)
04-25 14:01:32.654: W/System.err(31129):    at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:108)
04-25 14:01:32.654: W/System.err(31129):    at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:276)
04-25 14:01:32.654: W/System.err(31129):    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:140)
04-25 14:01:32.655: W/System.err(31129):    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3798)
04-25 14:01:32.655: W/System.err(31129):    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2842)
04-25 14:01:32.655: W/System.err(31129):    at com.elo.saude.familia.Utils.JSONtoObjeto(Utils.java:93)
04-25 14:01:32.655: W/System.err(31129):    at com.elo.saude.familia.Utils.JSONtoListaObjetos(Utils.java:154)
04-25 14:01:32.658: W/System.err(31129):    at com.elo.saude.familia.sincronia.ProdutorRede.obterObjetoRemoto(ProdutorRede.java:63)
04-25 14:01:32.658: W/System.err(31129):    at com.elo.saude.familia.sincronia.ProdutorRede.produzir(ProdutorRede.java:43)
04-25 14:01:32.659: W/System.err(31129):    at com.elo.saude.familia.sincronia.Produtor.call(Produtor.java:27)
04-25 14:01:32.659: W/System.err(31129):    at com.elo.saude.familia.sincronia.Produtor.call(Produtor.java:12)
04-25 14:01:32.659: W/System.err(31129):    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-25 14:01:32.660: W/System.err(31129):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
04-25 14:01:32.660: W/System.err(31129):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
04-25 14:01:32.661: W/System.err(31129):    at java.lang.Thread.run(Thread.java:818)

Elousuarios class:

package com.elo.saude.familia.modelo;

import com.elo.saude.familia.sincronia.Rede;
import com.elo.saude.familia.sincronia.Sincronizavel;
import com.fasterxml.jackson.annotation.JsonProperty;

import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
import com.elo.saude.familia.sincronia.SyncField;

@Sincronizavel(fluxo = Rede.DESCER)
@DatabaseTable(tableName = "elo_usuarios")
public class EloUsuarios extends ObjetoVersionado
{
    @JsonProperty("codigoUsuario")
    @DatabaseField(id = true)
    private Integer codigo_usuario;
    @DatabaseField(canBeNull=false)
    private String nome;
    @DatabaseField
    private String sobrenome;
    @DatabaseField
    private String cpf;
    @DatabaseField(uniqueIndex=true,canBeNull=false)
    private String login;
    @DatabaseField(canBeNull=false)
    private String senha;
    @DatabaseField(canBeNull=false,defaultValue="3")
    private Integer nivel;
    @JsonProperty("codigoUltimoUsuario")
    @DatabaseField
    private Integer CODIGO_ULTIMO_USUARIO;

    public String getId() {
        return String.valueOf(codigo_usuario);
    }

    public void setId(Integer parId) {
        codigo_usuario = parId;
    }

    /**
     * Construtor padrao - necessario ao ORMLITE 
     */
    public EloUsuarios() {
        super();
        classType = "EloUsuarios";
    }

    /**
     * Construtor parametrizado
     */
    public EloUsuarios(String parNome, String parSobrenome, String parCpf, String parLogin, String parSenha) {
        this();
        this.nome = parNome;
        this.sobrenome = parSobrenome;
        this.cpf = parCpf;
        this.login = parLogin;
        this.senha = parSenha;
    }

}

Class Objectoversionado:

package com.elo.saude.familia.modelo;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.j256.ormlite.field.DataType;
import com.j256.ormlite.field.DatabaseField;

/**
 * Classe abstrata que descreve objetos que são versionados.
 */
public abstract class ObjetoVersionado extends Objeto {

/**
 * Informa se o objeto está ativo ou não (apagado)
 */
@DatabaseField
private Integer ativo;

/**
 * Status de sincronizacao do objeto
 */
@DatabaseField(dataType = DataType.ENUM_INTEGER)
@JsonProperty("status")
private StatusSync STATUS;

/**
 * Data de última atualização do objeto no sistema
 */
@JsonProperty("datareg")
@DatabaseField(canBeNull=false, dataType = DataType.DATE_STRING, format="yyyy-MM-dd HH:mm:ss", version=true)
private Date DATAREG;

/**
 * Construtor padrao
 */
public ObjetoVersionado() {
    DATAREG = new Date();
    ativo = 1;
}

public ObjetoVersionado(Integer ativo, StatusSync STATUS, Date DATAREG) {

}

public ObjetoVersionado(ObjetoVersionado copia) {
    this(  );
}

/**
 * Obtem a data da ulitma atualizacao do objeto
 * @return Data da última atualização
 */
public Date getVersao() {
    return DATAREG;
};

public Integer getAtivo() {
    return ativo;
};

public StatusSync getStatus() {
    return STATUS;
};

public void hydrate(Objeto parObj) {
    ObjetoVersionado obj = (ObjetoVersionado) parObj;
    if (obj != null) {
        this.ativo = obj.getAtivo();
        this.STATUS = obj.getStatus();
        this.DATAREG = obj.getVersao();
    }
}

}

1 answer

0


My problem was not with the code, but with the server, in the table file in . php of the server set the Lazy load to true and solved the problem as it did not bring the Elousuarios object and only the ID.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.