E aí pessoal! Beleza?
O retorno do WebService gerou esse erro:
java.lang.NumberFormatException: Invalid int: "2017000000000292"
O que pode ser? E como pode ser resolvido?
poste o código pro completo para ser analisado
Essa classe onde estou pegando o retorno do web service:
public Object[] buscarHistoricoAtendimento(String chaveIntegracao, int codigoCliente)
throws IOException, XmlPullParserException {
//Namespace e nome para o objeto SOAP
SoapObject requestHistoricoAtendimento = new SoapObject(NAMESPACE, METHOD_NAME);
SoapObject requestAutenticacao = new SoapObject(NAMESPACE, METHOD_NAME_AUTENTICACAO);
SoapObject requestDadosHistoricoAtendimento = new SoapObject(NAMESPACE, METHOD_NAME_DADOS);
//Adiciona os parametros para a autenticação
requestAutenticacao.addProperty("ChaveIntegracao", chaveIntegracao);
//Adiciona os parametros para os dados do usuario
requestDadosHistoricoAtendimento.addProperty("CodigoCliente", codigoCliente);
//Adiciona os parametros para o login central
requestHistoricoAtendimento.addProperty(METHOD_NAME_AUTENTICACAO, requestAutenticacao);
requestHistoricoAtendimento.addProperty(METHOD_NAME_DADOS, requestDadosHistoricoAtendimento);
//Cria o envelope com o objeto SOAP
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(requestHistoricoAtendimento);
Log.d(TAG, "Chamado Web Service Histórico Atendimento: " + URL);
//Cria o HttpTransport para enviar os dados (soap)
HttpTransportSE httpTransport = new HistoricoPagamentosHttpTransport(URL);
try {
//Faz requisição
httpTransport.call("", envelope);
httpTransport.debug = true;
Log.d(TAG, "Transporte Histórico Atendimento: " + httpTransport.responseDump);
// Login e senha estão corretos - inicio
Vector logou = (Vector) envelope.getResponse();
//mResposta = new String[logou.size()];
Log.d(TAG, "Tamanho do logou: " + logou.size());
for (int i = 0; i < logou.size(); i++){
mResposta = logou.get(i);
}
atendimentos = ((Vector<SoapObject>) mResposta).toArray();
Log.d(TAG,"Vetor logou: " + logou);
Log.d(TAG,"Vetor resposta: " + mResposta);
//Log.d(TAG, "Histórico: " + atendimentos[1]);
} catch (Exception e){
Log.e(TAG, "Erro ao ler o envelope Atendimento: " + e);
e.printStackTrace();
return null;
}
return atendimentos;
}
Perceba que ‘2017000000000292’ é um valor maior do que o suportado pelo tipo inteiro. O WS foi configurado para devolver inteiro? Talvez trocar para long seja uma solução.
Valeu drsmachado! Deu certo 