1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Receber um JSON no meu WebService

Estou tentando receber um JSON no meu WebService, feito no Java com JAX. Está acusando o seguinte erro pelo postman: "Can not deserialize instance of java.util.ArrayList out of START_OBJECT token at [Source: org.apache.catalina.connector.CoyoteInputStream@9669412; line: 2, column: 6]"

Já consegui enviar e receber um unico elemento. Tenho quase certeza que não estou sabendo fazer minha classe de dados. Gostaria de carregar o objeto já com esse json.

Seguem os dados:

JSON que estou enviado

{"operacao": [{"titulo":[{ "cedCNPJCPF": "011.222.123-56", "cedNome": "Joao Russo", "cedCEP": "90250145", "cedLogradouro": "Avenida Arbusto, 1111", "cedComplemento": "546", "cedCidade": "Porto Alegre", "cedBairro": "Humaita", "cedUF": "RS", "cedFone": "5199899000", "cedSocCNPJCPF": ["460.538.415-44", "011.222.123-56"], "cedSocNome": ["Juca Bala","Joao Damiani"], "cedRepCNPJCPF": ["007.910.820-24","123.456.789-10"], "cedRepNome": ["Raul","Julio"], "idgCodigo": "010101", "opeTipo": "1", "opeTitDocumento": "abcd0101", "opeTitVencimento": "03062019", "opeTitValor": "1000", "opeTitNN": "1231321", "sacCNPJCPF": "473.471.055-44", "sacNome": "Kelly Slater", "sacCEP": "91330080", "sacFone": "5199999999", "sacLogradouro": "Avenida Beira Mar, sn ", "sacComplemento": "sem comp", "sacCidade": "Cocoa Beach", "sacBairro": "Praia", "sacUF": "FL", "idCobranca": "1121", "opeTitDesconto": "10", "opeTitDescontoLimite": "04062019", "opeTitDesconto2": "05062019"}] },[{"titulo":[{ "cedCNPJCPF": "011.222.123-56", "cedNome": "batata", "cedCEP": "90250130", "cedLogradouro": "Avenida Dez, 1185, 546", "cedComplemento": "332", "cedCidade": "Porto Alegre", "cedBairro": "Rio Branco", "cedUF": "RS", "cedFone": "5199999999", "cedSocCNPJCPF": ["460.538.415-44", "011.222.123-56"], "cedSocNome": ["Juca Bala","Joao Tez"], "cedRepCNPJCPF": ["008.910.820-24","123.456.789-10"], "cedRepNome": ["Raul Metch","Ju Louis"], "idgCodigo": "010101", "opeTipo": "1", "opeTitDocumento": "abcd0101", "opeTitVencimento": "03062019", "opeTitValor": "1000", "opeTitNN": "1231321", "sacCNPJCPF": "473.471.055-44", "sacNome": "Kelly Slater", "sacCEP": "91330080", "sacFone": "51999799318", "sacLogradouro": "Avenida Beira Mar, sn ", "sacComplemento": "sem comp", "sacCidade": "Cocoa Beach", "sacBairro": "Praia", "sacUF": "FL", "idCobranca": "1121", "opeTitDesconto": "10", "opeTitDescontoLimite": "04062019", "opeTitDesconto2": "05062019"}] }]

]

}

Classe de dados package br.com.restful.model;

import java.sql.Connection; import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List;

import javax.servlet.http.HttpServletRequest; import javax.xml.bind.annotation.XmlRootElement;

import obNetClient.obMovimentacaoBean; import obNetClient.obOperacaoBean; import obNetClient.obWebBean; import obNetClient.obBase.obUtil; import obNetFactor.documentosEnvio.configuracaoEnvioEmailStruc; import obNetFactor.operacao.documentosDaOperacaoStruc; import obNetFactor.operacao.notaFiscalDadosStruc; import obNetFactor.operacao.notaFiscalSelecaoStruc; import obNetFactor.operacao.obOperacaoException; import obNetFactor.operacao.operacaoDigitaStruc; import obNetFactor.operacao.operacaoErroStruc; import obNetFactor.operacao.operacaoParametroCalculoStruc; import obNetFactor.operacao.operacaoSelecaoStruc; import obNetFactor.operacao.operacaoStruc; import obNetFactor.operacao.operacaoUltrapassouLimiteCredtioDadosStruc; import obNetServer.DBConnectionManager; import obNetServer.obBD; import obNetServer.obDocumentosEnvioBD; import obNetServer.obOperacaoImpl; import obNetServer.obPermissaoBD; import br.ob.net.obNetClient.convencional.lancamento_retroativo.NetVerirficaParametroLancamentoRetroativo; import br.ob.net.obNetClient.convencional.lancamento_retroativo.NetVerirficaParametroLancamentoRetroativoRetorno; import br.ob.net.obNetClient.util.NetEnviaEmailThread; import br.ob.net.obNetClient.util.Util;

@XmlRootElement public class NetOperacaoWSDados extends obWebBean{

private String usuario;

private String senha;

private String cedCNPJCPF;

private String cedNome;

private String cedLogradouro;

private String cedComplemento;

private String cedCidade;

private String cedBairro;

private String cedCEP;

private String cedFone;

private String cedUF;

private ArrayList titulo;

private ArrayList operacao;

private ArrayList cedSocCNPJCPF;

private ArrayList cedSocNome;

private ArrayList cedRepCNPJCPF;

private ArrayList cedRepNome;

private String idgCodigo; //aqui defino o que vai ser duplicata e o que vai ser cartao de credito

private int opeTipo; //Adiantamento ou Garantia

private int sop_id;

private int empCodigo;

private int cccCodigo;

private int ageCodigo;

private String opeTitDocumento;

private long opeTitVencimento;

private double opeTitValor;

private String opeTitNN;

private String sacCNPJCPF;

private String sacNome;

private String sacLogradouro;

private String sacComplemento;

private String sacCidade;

private String sacBairro;

private String sacUF;

private String sacCEP;

private String sacFone;

private int idCobranca;

private double opeTitDesconto;

private long opeTitDescontoLimite;

private double opeTitDesconto2;

/* @return the usuario */ public String getUsuario() { return usuario; }

/* @param usuario the usuario to set */ public void setUsuario(String usuario) { this.usuario = usuario; }

/* @return the senha */ public String getSenha() { return senha; }

/* @param senha the senha to set */ public void setSenha(String senha) { this.senha = senha; }

/* @return the cedFone */ public String getCedFone() { return cedFone; }

/* @param cedFone the cedFone to set */ public void setCedFone(String cedFone) { this.cedFone = cedFone; }

/* @return the sacCEP */ public String getSacCEP() { return sacCEP; }

/* @param sacCEP the sacCEP to set */ public void setSacCEP(String sacCEP) { this.sacCEP = sacCEP; }

/* @return the sacFone */ public String getSacFone() { return sacFone; }

/* @param sacFone the sacFone to set */ public void setSacFone(String sacFone) { this.sacFone = sacFone; }

/* @return the cedCNPJCPF */ public String getCedCNPJCPF() { return cedCNPJCPF; }

/* @param cedCNPJCPF the cedCNPJCPF to set */ public void setCedCNPJCPF(String cedCNPJCPF) { this.cedCNPJCPF = cedCNPJCPF; }

/* @return the cedNome */ public String getCedNome() { return cedNome; }

/* @param cedNome the cedNome to set */ public void setCedNome(String cedNome) { this.cedNome = cedNome; }

/* @return the cedLogradouro */ public String getCedLogradouro() { return cedLogradouro; }

/* @param cedLogradouro the cedLogradouro to set */ public void setCedLogradouro(String cedLogradouro) { this.cedLogradouro = cedLogradouro; }

/* @return the cedComplemento */ public String getCedComplemento() { return cedComplemento; }

/* @param cedComplemento the cedComplemento to set */ public void setCedComplemento(String cedComplemento) { this.cedComplemento = cedComplemento; }

/* @return the cedCidade */ public String getCedCidade() { return cedCidade; }

/* @param cedCidade the cedCidade to set */ public void setCedCidade(String cedCidade) { this.cedCidade = cedCidade; }

/* @return the cedBairro */ public String getCedBairro() { return cedBairro; }

/* @param cedBairro the cedBairro to set */ public void setCedBairro(String cedBairro) { this.cedBairro = cedBairro; }

/* @return the cedCEP */ public String getCedCEP() { return cedCEP; }

/* @param cedCEP the cedCEP to set */ public void setCedCEP(String cedCEP) { this.cedCEP = cedCEP; }

/* @return the cedUF */ public String getCedUF() { return cedUF; }

/* @param cedUF the cedUF to set */ public void setCedUF(String cedUF) { this.cedUF = cedUF; }

/* @return the titulo */ public ArrayList getTitulo() { return titulo; }

/* @param titulo the titulo to set */ public void setTitulo(ArrayList titulo) { this.titulo = titulo; }

/* @return the operacao */ public ArrayList getOperacao() { return operacao; }

/* @param operacao the operacao to set */ public void setOperacao(ArrayList operacao) { this.operacao = operacao; }

/* @return the cedSocCNPJCPF */ public ArrayList getCedSocCNPJCPF() { return cedSocCNPJCPF; }

/* @param cedSocCNPJCPF the cedSocCNPJCPF to set */ public void setCedSocCNPJCPF(ArrayList cedSocCNPJCPF) { this.cedSocCNPJCPF = cedSocCNPJCPF; }

/* @return the cedSocNome */ public ArrayList getCedSocNome() { return cedSocNome; }

/* @param cedSocNome the cedSocNome to set */ public void setCedSocNome(ArrayList cedSocNome) { this.cedSocNome = cedSocNome; }

/* @return the cedRepCNPJCPF */ public ArrayList getCedRepCNPJCPF() { return cedRepCNPJCPF; }

/* @param cedRepCNPJCPF the cedRepCNPJCPF to set */ public void setCedRepCNPJCPF(ArrayList cedRepCNPJCPF) { this.cedRepCNPJCPF = cedRepCNPJCPF; }

/* @return the cedRepNome */ public ArrayList getCedRepNome() { return cedRepNome; }

/* @param cedRepNome the cedRepNome to set */ public void setCedRepNome(ArrayList cedRepNome) { this.cedRepNome = cedRepNome; }

/* @return the idgCodigo */ public String getIdgCodigo() { return idgCodigo; }

/* @param idgCodigo the idgCodigo to set */ public void setIdgCodigo(String idgCodigo) { this.idgCodigo = idgCodigo; }

/* @return the sop_id */ public int getSop_id() { return sop_id; }

/* @param sop_id the sop_id to set */ public void setSop_id(int sop_id) { this.sop_id = sop_id; }

/* @return the opeTipo */ public int getOpeTipo() { return opeTipo; }

/* @param opeTipo the opeTipo to set */ public void setOpeTipo(int opeTipo) { this.opeTipo = opeTipo; }

/* @return the opeTitDocumento */ public String getOpeTitDocumento() { return opeTitDocumento; }

/* @param opeTitDocumento the opeTitDocumento to set */ public void setOpeTitDocumento(String opeTitDocumento) { this.opeTitDocumento = opeTitDocumento; }

/* @return the opeTitVencimento */ public long getOpeTitVencimento() { return opeTitVencimento; }

/* @param opeTitVencimento the opeTitVencimento to set */ public void setOpeTitVencimento(long opeTitVencimento) { this.opeTitVencimento = opeTitVencimento; }

/* @return the opeTitValor */ public double getOpeTitValor() { return opeTitValor; }

/* @param opeTitValor the opeTitValor to set */ public void setOpeTitValor(double opeTitValor) { this.opeTitValor = opeTitValor; }

/* @return the opeTitNN */ public String getOpeTitNN() { return opeTitNN; }

/* @param opeTitNN the opeTitNN to set */ public void setPoeTitNN(String opeTitNN) { this.opeTitNN = opeTitNN; }

/* @return the sacCNPJCPF */ public String getSacCNPJCPF() { return sacCNPJCPF; }

/* @param sacCNPJCPF the sacCNPJCPF to set */ public void setSacCNPJCPF(String sacCNPJCPF) { this.sacCNPJCPF = sacCNPJCPF; }

/* @return the sacNome */ public String getSacNome() { return sacNome; }

/* @param sacNome the sacNome to set */ public void setSacNome(String sacNome) { this.sacNome = sacNome; }

/* @return the sacLogradouro */ public String getSacLogradouro() { return sacLogradouro; }

/* @param sacLogradouro the sacLogradouro to set */ public void setSacLogradouro(String sacLogradouro) { this.sacLogradouro = sacLogradouro; }

/* @return the sacComplemento */ public String getSacComplemento() { return sacComplemento; }

/* @param sacComplemento the sacComplemento to set */ public void setSacComplemento(String sacComplemento) { this.sacComplemento = sacComplemento; }

/* @return the sacCidade */ public String getSacCidade() { return sacCidade; }

/* @param sacCidade the sacCidade to set */ public void setSacCidade(String sacCidade) { this.sacCidade = sacCidade; }

/* @return the sacBairro */ public String getSacBairro() { return sacBairro; }

/* @param sacBairro the sacBairro to set */ public void setSacBairro(String sacBairro) { this.sacBairro = sacBairro; }

/* @return the sacUF */ public String getSacUF() { return sacUF; }

/* @param sacUF the sacUF to set */ public void setSacUF(String sacUF) { this.sacUF = sacUF; }

/* @return the idCobranca */ public int getIdCobranca() { return idCobranca; }

/* @param iDCobranca the iDCobranca to set */ public void setIdCobranca(int idCobranca) { this.idCobranca = idCobranca; }

/* @return the opeTitDesconto */ public double getOpeTitDesconto() { return opeTitDesconto; }

/* @param opeTitDesconto the opeTitDesconto to set */ public void setOpeTitDesconto(double opeTitDesconto) { this.opeTitDesconto = opeTitDesconto; }

/* @return the opeTitDescontoLimite */ public long getOpeTitDescontoLimite() { return opeTitDescontoLimite; }

/* @param opeTitDescontoLimite the opeTitDescontoLimite to set */ public void setOpeTitDescontoLimite(long opeTitDescontoLimite) { this.opeTitDescontoLimite = opeTitDescontoLimite; }

/* @return the opeTitDesconto2 */ public double getOpeTitDesconto2() { return opeTitDesconto2; }

/* @param opeTitDesconto2 the opeTitDesconto2 to set */ public void setOpeTitDesconto2(double opeTitDesconto2) { this.opeTitDesconto2 = opeTitDesconto2; }

/* @return the empCodigo */ public int getEmpCodigo() { return empCodigo; }

/* @param empCodigo the empCodigo to set */ public void setEmpCodigo(int empCodigo) { this.empCodigo = empCodigo; }

/* @return the cccCodigo */ public int getCccCodigo() { return cccCodigo; }

/* @param cccCodigo the cccCodigo to set */ public void setCccCodigo(int cccCodigo) { this.cccCodigo = cccCodigo; }

/* @return the ageCodigo */ public int getAgeCodigo() { return ageCodigo; }

/* @param ageCodigo the ageCodigo to set */ public void setAgeCodigo(int ageCodigo) { this.ageCodigo = ageCodigo; }

@Override public String toString() { return "Operacao [" + " cedCNPJCPF: " + cedCNPJCPF +" ,cedNome: "+ cedNome + ",cedCEP: " + cedCEP + " ,cedLogradouro: " + cedLogradouro + " ,cedComplemento: " + cedComplemento + " ,cedCidade: " + cedCidade + " ,cedBairro: " + cedBairro + " ,cedUF: " + cedUF + ",cedFone: " + cedFone +" ,cedSocCNPJCPF: "+ cedSocCNPJCPF + " ,cedSocNome: " + cedSocNome + " ,cedRepCNPJCPF: " + cedRepCNPJCPF + " ,cedRepNome: " + cedRepNome + " ,idgCodigo: " + idgCodigo + " ,opeTipo: " + opeTipo + " ,opeTitDocumento: " + opeTitDocumento + " ,opeTitVencimento: " + opeTitVencimento + " ,opeTitValor: " + opeTitValor + " ,opeTitNN: " + opeTitNN + " ,sacCNPJCPF: " + sacCNPJCPF + " ,sacNome: " + sacNome + " ,sacCEP: " + sacCEP + " ,sacLogradouro: " + sacLogradouro + " ,sacComplemento: " + sacComplemento + " ,sacCidade: " + sacCidade + " ,sacBairro: " + sacBairro + " ,sacUF: " + sacUF + ",sacFone: " + sacFone + " ,idCobranca: " + idCobranca + " ,opeTitDesconto: " + opeTitDesconto + " ,opeTitDescontoLimite: " + opeTitDescontoLimite + " ,opeTitDesconto2: " + opeTitDesconto2 +"]";}

}

Resource package br.com.restful.resource;

import java.util.ArrayList;

import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.Application; import javax.ws.rs.core.MediaType;

import org.apache.batik.parser.PathHandler;

import obNetServer.obUtil; import br.com.restful.dao.NetOperacaoWSAction; import br.com.restful.model.NetOperacaoWSDados;

import com.google.gson.Gson;

@Path("/netFactorWS") public class NetResourceWSNF extends Application{ public NetResourceWSNF(){}

@POST @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) //@Path("/operacao/{json}") //na real acho que nao vou pedir por url @Path("/operacao") //public String incluiOperacao(@PathParam("json") String json) throws Exception{ public String incluiOperacao(ArrayList operacao) throws Exception{ try{

return new Gson().toJson(operacao.toString());

} catch (Exception e) { obUtil.obErro(0, "consultaOperacao", e); throw e; } finally { System.out.println("ok"); } }

}

Obrigado.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags json rest ou faça a sua própria pergunta.