Ver mensagens sem resposta | Ver tópicos ativos Hoje é 07 Dez 2019, 08:34



Responder Tópico  [ 271 Mensagens ]  Ir para a página Anterior  1, 2, 3, 4, 5, 6  Próximo
 [Artigo] Web Service RESTful 2 [+Consumir+Android+Code] 
Autor Mensagem
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Rapaz,

O projeto está rodando perfeito no meu PC. O projeto que eu tenho é exatamente esse que está anexado no tópico. Simplesmente baixei, importei no eclipse, rodei e funcionou.

Fiz todas as perguntas que eu imagino serem pertinentes para tentar mapear o seu problema, mas sem muita informação, não tem muito o que eu possa fazer pra te ajudar.

Eu precisaria ver o que vc está fazendo ou ter um passo-a-passo do que vc fez pra conseguir ser mais preciso.

Normalmente não faço isso, mas pelo seu desespero, se conseguir disponibilizar um logmein, vnc, ou virtual PC, posso ver se consigo te ajudar remotamente.

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


08 Jun 2012, 22:15
Perfil WWW
Android application
Android application

Data de registro: 30 Mai 2012, 01:01
Mensagens: 78
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Antunes,

Refiz tudo novamente, e nada de funcionar, sera que so o meu que nao funciona???
Se puder ajudar obrigado, senao tudo bem!!!


11 Jun 2012, 12:19
Perfil
What is Android?
What is Android?

Data de registro: 21 Jun 2012, 19:26
Mensagens: 1
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Seguinte Fera achei seu Artigo Excelente muito massa...

Estou com uma duvida em um projeto que estou desenvolvendo...

Um AppMobile vai me enviar alguns parametros na verdade sao 3 parametros, longitude,latitude e codigo.

como tratar no web service?? esses parametros como faço pra receber eles?


21 Jun 2012, 19:30
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Vc pode receber como numeral ou como string, vc quem sabe!!

Chegou a ver esse outro artigo??

viewtopic.php?f=7&t=17389&start=0

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


21 Jun 2012, 22:28
Perfil WWW
What is a Activity?
What is a Activity?

Data de registro: 06 Mai 2012, 20:36
Mensagens: 15
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Boa Tarde Antunes,

Minha app adnroid está rodando "perfeitamente" e meu web service está também. O WS eu testo com o poster e me retornar o dados corretamente, mais quando minha app buscar da falha de rede..
Na classe ClienteREST, na URL_WS eu já testei de três maneira e nada cara..

URL_WS = "http://127.0.0.1:8084/WebServiceREST/cliente/"; (No browser funciona, mas na app não)
URL_WS = "http://10.0.2.2:8080/WebServiceREST/cliente/"; (não funciona em nenhum)
URL_WS = "http://10.0.2.2:8084/WebServiceREST/cliente/"; (não funciona em nenhum)


Se puder ajudar ficarei grato!

_________________
Halyson Lima Gonçalves
Software Developer OS Android


24 Jun 2012, 19:26
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Independente do IP, a url "../WebServiceREST/cliente/" não existe.

Ela deve vir acompanhada de mais alguma coisa, por exemplo:

"../WebServiceREST/cliente/buscarTodos" - para buscar todos.

ou

"../WebServiceREST/cliente/1" - para buscar o cliente com o id 1.

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


24 Jun 2012, 21:17
Perfil WWW
What is a Activity?
What is a Activity?

Data de registro: 06 Mai 2012, 20:36
Mensagens: 15
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Sim, concordo... mas por exemplo, se na app, eu clicar em buscar todos, la na classe cliente, ele tem o metodo que inclui após:

cliente/buscarTodos....


mais o que está o ocorrendo é que está aparecendo falha na rede!

Grato!

_________________
Halyson Lima Gonçalves
Software Developer OS Android


25 Jun 2012, 22:34
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Ahh sim, tah certo!!

O endereço "10.0.2.2" é o que o emulador mapeia como sendo o do seu PC.

A outra forma de fazer funcionar é usando o endereço da placa de rede. Para conseguir esse endereço basta abrir o CMD e digitar "ipconfig" que mostrará suas configurações de rede.

Outra coisa importante é verificar se o seu servidor de aplicação (tomcat, jboss, glassfish e etc.) está funcionando corretamente e a porta que ele está rodando tbm.

Esse problema de "falha na rede" pode ser o seu servidor de aplicação que não está rodando.

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


25 Jun 2012, 23:40
Perfil WWW
What is a Activity?
What is a Activity?

Data de registro: 06 Mai 2012, 20:36
Mensagens: 15
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Boa noite, eu tentei aqui, mas nada...
tem como me dar uma mão fazendo favor?

halysongoncalves@gmail.com, ae lhe passo o logmein!

Pois estou é meu tcc que estou desenvolvendo!

_________________
Halyson Lima Gonçalves
Software Developer OS Android


25 Jun 2012, 23:42
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 24 Nov 2011, 15:01
Mensagens: 123
Localização: São Paulo
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Bom dia pessoal !!!

Estou com uma duvida aqui , no momento que eu crio a lista para manda para o webservice, como faço para criar essa
lista com um cursoradapter com os dados vindos do meu banco ?

ArrayList<Cliente> listaClientes = new ArrayList<Cliente>();
        Cliente cliente1 = new Cliente();
        cliente1.setNome("João da Silva");
        cliente1.setCpf("000333444-01");
        cliente1.setEndereco("Rua do lado, 33");
        listaClientes.add(cliente1);
       
        Cliente cliente2 = new Cliente();
        cliente2.setNome("Marcos Ribeiro");
        cliente2.setCpf("777777777-99");
        cliente2.setEndereco("Rua de cima, 340");
        listaClientes.add(cliente2);
       
        Cliente cliente3 = new Cliente();
        cliente3.setNome("Zezinho do posto");
        cliente3.setCpf("999999999-22");
        cliente3.setEndereco("Rua de baixo, 66");
        listaClientes.add(cliente3);
       
        //não coloquei o ID, pq isso é papel do banco, com um auto increment.
        ClienteREST cliREST = new ClienteREST();
        try {
            String resposta = cliREST.inserirListaClientes(listaClientes);
            txtView.setText(resposta);
        } catch (Exception e) {
            e.printStackTrace();
            gerarToast(e.getMessage());
        }
    }


aqui ele usou um arraylist , como faço para pegar os dados do meu banco e popular a lista, para depois enviar para o webservice ?

Fico no aguardo abraços !!!


27 Jun 2012, 17:00
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Vc pode fazer algo mais ou menos assim:

Imagina esse método na sua classe Banco.

public List<Cliente> getAllClientes() {
        List<Cliente> listaClientes = new ArrayList<Cliente>();

        Cursor cursor = database.query(MySQLiteHelper.TABLE_CLIENTES,
                allColumns, null, null, null, null, null); // aqui é só um exemplo, não sei como está o seu banco!!

        cursor.moveToFirst();
        while (!cursor.isAfterLast()) {
            Cliente cliente = new Cliente();
            cliente.setNome(cursor.getString(0));
            cliente.setCpf(cursor.getString(1));
            cliente.setEndereco(cursor.getString(2));
            listaClientes.add(cliente);
            cursor.moveToNext();
        }
        // lembre de fechar o cursor
        cursor.close();
        return listaClientes ;
    }
 


Depois basta vc usar o método que faz o envio para o WS:


ClienteREST cliREST = new ClienteREST();
        try {
            String resposta = cliREST.inserirListaClientes(new Banco().getAllClientes());
            txtView.setText(resposta);
        } catch (Exception e) {
            e.printStackTrace();
            gerarToast(e.getMessage());
        }
 


É mais ou menos isso que vc terá que fazer!!

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


27 Jun 2012, 17:17
Perfil WWW
Anatomy of an App
Anatomy of an App

Data de registro: 24 Nov 2011, 15:01
Mensagens: 123
Localização: São Paulo
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Fala pessoal blz ?

Estou precisando de um favor aqui rsrsrs ...

a minha aplicação gravar os dados no teblet e no servidor, porém quando o servidor esta fora só é gravado no aparelho, e a resposta do servidor teria que vir 0 ou nullo algo do tipo e quando desse para gravar nos dois viesse 1 ou positivo, indicando que foi possivel gravar no servidor tbm .

Alguem pode me ajudar a receber uma resposta do servidor quando der para gravar nele ?



metodo webservice

public final String[] get(String url) {

         String[] result = new String[2];
         HttpGet httpget = new HttpGet(url);
         HttpResponse response;
         try {
             response = HttpClientSingleton.getHttpClientInstace().execute(httpget);
             HttpEntity entity = response.getEntity();

             if (entity != null) {
                 result[0] = String.valueOf(response.getStatusLine().getStatusCode());
                 InputStream instream = entity.getContent();
                 result[1] = toString(instream);
                 instream.close();
                 Log.i("get", "Result from post JsonPost : " + result[0] + " : " + result[1]);
           
             }
           
         } catch (Exception e) {
             Log.i("NGVL", "Falha ao acessar Web service", e);
             result[0] = "0";
             result[1] = "Falha de rede!";
         }
         return result;
        }

        public final String[] post(String url, String json) {
         String[] result = new String[2];
         try {

             HttpPost httpPost = new HttpPost(new URI(url));
             httpPost.setHeader("Content-type", "application/json");
             StringEntity sEntity = new StringEntity(json, "UTF-8");
             httpPost.setEntity(sEntity);

             HttpResponse response;
             response = HttpClientSingleton.getHttpClientInstace().execute(httpPost);
             HttpEntity entity = response.getEntity();

             if (entity != null) {
                 result[0] = String.valueOf(response.getStatusLine().getStatusCode());
                 InputStream instream = entity.getContent();
                 result[1] = toString(instream);
                 instream.close();
                 Log.i("post", "Result from post JsonPost : " + result[0] + " : " + result[1]);
             }

         } catch (Exception e) {
             Log.i("NGVL", "Falha ao acessar Web service", e);
             result[0] = "0";
             result[1] = "Falha de rede!";
         }
         return result;
        }

        private String toString(InputStream is) throws IOException {

         byte[] bytes = new byte[1024];
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         int lidos;
         while ((lidos = is.read(bytes)) > 0) {
             baos.write(bytes, 0, lidos);
         }
         return new String(baos.toByteArray());
        }


método para inserir no servidor

public String inserirItens(Itens Itens) throws Exception {
     
     Gson gson = new Gson();
     String ItensJSON = gson.toJson(Itens);
     String[] resposta = new WebServicePreConta().post(URL_WS + "inserir", ItensSON);
     Itens itens= new Itens();
     if (resposta[0].equals("200")) {
         
         itens.setStatus("G");
         status=itens.getStatus();
         Log.i("Sucesso",status);
         return resposta[1];
       
     } else {
         itens.setStatus("null");
         status=itens.getStatus();
         Log.i("erro",status);
         throw new Exception(resposta[1]);
     }
    }


Onde eu trato o retorno para jogar em uma string para ai sim gravar o status no tablet

   
                            try{
                               
                            item = new Itens();
                           
                               status=item.getStatus();
                               
                               Log.i("Retorno do status dentro do try ",status);
                             
                                if(status.equalsIgnoreCase(null))
                                {
                                    sync="null";
                                }
                            if(status.equalsIgnoreCase("G")){
                               
                                sync="G";
                               
                            }
                            else{
                                sync="null";
                            }
                            }
                            catch(Exception error){

 


02 Jul 2012, 18:52
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
adriano.web escreveu:
a minha aplicação gravar os dados no teblet e no servidor, porém quando o servidor esta fora só é gravado no aparelho, e a resposta do servidor teria que vir 0 ou nullo algo do tipo e quando desse para gravar nos dois viesse 1 ou positivo, indicando que foi possivel gravar no servidor tbm .

Alguem pode me ajudar a receber uma resposta do servidor quando der para gravar nele ?



Eu tenho só uma pergunta. Se o servidor está fora do ar, como ele vai responder??

O que vc pode fazer é tratar quando voltar erro do servidor ou quando vc não conseguir enviar.

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


02 Jul 2012, 19:22
Perfil WWW
Anatomy of an App
Anatomy of an App

Data de registro: 24 Nov 2011, 15:01
Mensagens: 123
Localização: São Paulo
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
kkkkkkkkkkkkkk ta certo Antunes desculpa eu me expliquei mal rsrsrs ....

é isso mesmo o que eu fiz , quando der erro eu set o status como null, quando gravar eu set o status como G de gravado, só que ele fica com um certo atraso no get, se ele gravar uma vez ele vai com G e na proxima se estiver fora o servidor ele ainda grava com G, ai só na próxima ele coloca null, eu coloquei no oncreate da activity setStatus("null") para tentar zerar o status mas não esta funcionando ainda continua com o atraso !!!

Tem alguma idéia de como eu resolvo isso ?

Desculpa mais uma vez ai não me expliquei direito mas é isso mesmo o que vc falou que eu estou tentando fazer !!!!


Vlw Abraços !!!!


02 Jul 2012, 21:45
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
O caminho é esse mesmo.

Uma coisa que eu vi que pode estar te atrapalhando é isso aqui:


if(status.equalsIgnoreCase(null))
{
     sync="null";
}
 


No java, null é diferente de "null", ou seja, uma string nula é diferente do texto "null".

Não importando o que vc está recebendo, compare sempre assim:


if(status == null || status.equalsIgnoreCase("null"))
{
     sync="null";
}
 


Assim vc verifica se a variável é nula e se contém o texto "null".

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


03 Jul 2012, 10:57
Perfil WWW
Anatomy of an App
Anatomy of an App

Data de registro: 24 Nov 2011, 15:01
Mensagens: 123
Localização: São Paulo
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Vlw !!!!

Antunes muito obrigado pela força hein !!!!!


Me da uma luz aqui eu fiz o metodo de mandar uma lista para o webservice com o seu tuto. Esta funcionando belezinha, só
que ela não chega a inserir todos os elementos da lista ela da erro depois de um tempo.

O meu log esta assim :

07-03 11:06:33.264: I/NGVL(6614): java.net.SocketTimeoutException
07-03 11:06:33.264: I/NGVL(6614):   at org.apache.harmony.luni.net.PlainSocketImpl.read(PlainSocketImpl.java:461)
07-03 11:06:33.264: I/NGVL(6614):   at org.apache.harmony.luni.net.SocketInputStream.read(SocketInputStream.java:85)
07-03 11:06:33.264: I/NGVL(6614):   at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:103)
07-03 11:06:33.264: I/NGVL(6614):   at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:191)
07-03 11:06:33.264: I/NGVL(6614):   at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:82)
07-03 11:06:33.264: I/NGVL(6614):   at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174)
07-03 11:06:33.264: I/NGVL(6614):   at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:179)
07-03 11:06:33.264: I/NGVL(6614):   at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235)
07-03 11:06:33.264: I/NGVL(6614):   at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259)
07-03 11:06:33.264: I/NGVL(6614):   at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279)
07-03 11:06:33.264: I/NGVL(6614):   at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)
07-03 11:06:33.264: I/NGVL(6614):   at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:410)
07-03 11:06:33.264: I/NGVL(6614):   at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
07-03 11:06:33.264: I/NGVL(6614):   at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
07-03 11:06:33.264: I/NGVL(6614):   at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
07-03 11:06:33.264: I/NGVL(6614):   at br.com.PreContaWSE.webservice.WebServicePreConta.post(WebServicePreConta.java:62)
07-03 11:06:33.264: I/NGVL(6614):   at br.com.PreContaWSE.controler.ItensMesaREST.inserirListaItens(ItensMesaREST.java:76)
07-03 11:06:33.264: I/NGVL(6614):   at br.com.PreContaWSE.update.ServiceUpdate.Busca_Itens_desatualizado(ServiceUpdate.java:108)
07-03 11:06:33.264: I/NGVL(6614):   at br.com.PreContaWSE.update.ServiceUpdate.onStart(ServiceUpdate.java:46)
07-03 11:06:33.264: I/NGVL(6614):   at android.app.Service.onStartCommand(Service.java:428)
07-03 11:06:33.264: I/NGVL(6614):   at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2014)
07-03 11:06:33.264: I/NGVL(6614):   at android.app.ActivityThread.access$2800(ActivityThread.java:117)
07-03 11:06:33.264: I/NGVL(6614):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:991)
07-03 11:06:33.264: I/NGVL(6614):   at android.os.Handler.dispatchMessage(Handler.java:99)
07-03 11:06:33.264: I/NGVL(6614):   at android.os.Looper.loop(Looper.java:123)
07-03 11:06:33.264: I/NGVL(6614):   at android.app.ActivityThread.main(ActivityThread.java:3647)
07-03 11:06:33.264: I/NGVL(6614):   at java.lang.reflect.Method.invokeNative(Native Method)
07-03 11:06:33.264: I/NGVL(6614):   at java.lang.reflect.Method.invoke(Method.java:507)
07-03 11:06:33.264: I/NGVL(6614):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:856)
07-03 11:06:33.264: I/NGVL(6614):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:614)
07-03 11:06:33.264: I/NGVL(6614):   at dalvik.system.NativeStart.main(Native Method)
 


Tem algo relacionado a socket eu acho !!!!

Tem alguma coisa que eu posso melhorar voce analisando os erros ai ?

eu chamo essa sincronização em um service que dispara a cada 1 minuto

eu testei aqui a lista tinha 40 objetos, ele gravou 20 e paro deu esse logcat ai!!


Eu estava pensando em fazer o seguinte, eu monto a lista com os objetos que eu tenho no celular, e manda para o web service
gravar(atualizar), ele fazendo isso ele retorna uma outra lista atualizado e eu vou dando um update no celular com os dados que o web service me retornou na lista. Esse pensamento esta certo ?

Mais uma vez vlw pelo sua força e pela força da galera do Fórum é o melhor com certeza !!!

Abraços


03 Jul 2012, 13:13
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Rapaz,

Antes de tudo, eu identifiquei um erro no meu post anterior. Vc deve usar "||" e não "&&".

Em relação ao seu problema, o que tem na linha 62 da sua classe "WebServicePreConta"??
07-03 11:06:33.264: I/NGVL(6614):   at br.com.PreContaWSE.webservice.WebServicePreConta.post(WebServicePreConta.java:62)


Pode estar acontecendo esse erro por ser uma mensagem muito grande e a resposta está demorando a retornar, por isso o timeout. Já que a resposta só sai depois de incluir tudo no banco.

Tenta diminuir o tamanho dessa lista.

Para saber se a sua lógica está boa, tenho que saber o que vc precisa fazer, mas ela me parece boa, só tem que ver se ela está sendo eficiente, pois uma lista indo e voltando não me parece tão eficiente.

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


03 Jul 2012, 14:02
Perfil WWW
Anatomy of an App
Anatomy of an App

Data de registro: 24 Nov 2011, 15:01
Mensagens: 123
Localização: São Paulo
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Vlw Antunes !!!

Entao primeiro na minha linha 62 tem :

response = HttpClientSingleton.getHttpClientInstace().execute(httpPost);

Em relação ao que eu quero fazer é o seguinte:

Eu tenho uma lista de itens que eu monto a partir do que tem no meu banco de dados sqlite no celular, e quero passar ela para o web-service, uma especie de sincronismo entre eles. Quando eu passo ela para o web o status esta null, quando eu recebo essa lista de volta
o status vai para G indicando que aqueles itens já estão sincronizados. Essa lista provavelmente não vai ter tantos dados desatualizados já que o service dispara a cada 5 segundos, porém vão ser vários celures fazendo essa sincronização com o servidor.

Eu dei uma olhada aqui e aumentei o TIMEOUT:

public class HttpClientSingleton {
    private static final int JSON_CONNECTION_TIMEOUT = 40000;
    private static final int JSON_SOCKET_TIMEOUT = 60000;
    private static HttpClientSingleton instance;
    private HttpParams httpParameters ;
    private DefaultHttpClient httpclient;
 


Agora o meu Log esta assim:


07-04 10:29:48.513: I/NGVL(12658): java.net.SocketException: Socket closed
07-04 10:29:48.513: I/NGVL(12658):  at org.apache.harmony.luni.platform.OSNetworkSystem.read(Native Method)
07-04 10:29:48.513: I/NGVL(12658):  at dalvik.system.BlockGuard$WrappedNetworkSystem.read(BlockGuard.java:273)
07-04 10:29:48.513: I/NGVL(12658):  at org.apache.harmony.luni.net.PlainSocketImpl.read(PlainSocketImpl.java:458)
07-04 10:29:48.513: I/NGVL(12658):  at org.apache.harmony.luni.net.SocketInputStream.read(SocketInputStream.java:85)
07-04 10:29:48.513: I/NGVL(12658):  at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:103)
07-04 10:29:48.513: I/NGVL(12658):  at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:191)
07-04 10:29:48.513: I/NGVL(12658):  at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:82)
07-04 10:29:48.513: I/NGVL(12658):  at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174)
07-04 10:29:48.513: I/NGVL(12658):  at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:179)
07-04 10:29:48.513: I/NGVL(12658):  at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235)
07-04 10:29:48.513: I/NGVL(12658):  at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259)
07-04 10:29:48.513: I/NGVL(12658):  at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279)
07-04 10:29:48.513: I/NGVL(12658):  at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)
07-04 10:29:48.513: I/NGVL(12658):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:410)
07-04 10:29:48.513: I/NGVL(12658):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
07-04 10:29:48.513: I/NGVL(12658):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
07-04 10:29:48.513: I/NGVL(12658):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
07-04 10:29:48.513: I/NGVL(12658):  at br.com.PreContaWSE.webservice.WebServicePreConta.post(WebServicePreConta.java:62)
07-04 10:29:48.513: I/NGVL(12658):  at br.com.PreContaWSE.controler.ItensMesaREST.inserirListaItens(ItensMesaREST.java:76)
07-04 10:29:48.513: I/NGVL(12658):  at br.com.PreContaWSE.update.ServiceUpdate.Busca_Itens_desatualizado(ServiceUpdate.java:111)
07-04 10:29:48.513: I/NGVL(12658):  at br.com.PreContaWSE.update.ServiceUpdate.run(ServiceUpdate.java:164)
07-04 10:29:48.513: I/NGVL(12658):  at java.lang.Thread.run(Thread.java:1019)
 


O socket esta fechando se a lista conter mais de 20 itens a serem enviados para o servidor.

O que pode ser ?


04 Jul 2012, 12:45
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Acho que descobri o problema. Vc está fazendo a mesma operação de 5 em 5 segundos. O que pode acontecer é que a chamada anterior ainda está sendo executada e vc chama uma nova que dará um problema, já que o seu http cliente é um singleton.

Vc tem algumas opções:

1 - Tente sincronizar o método que faz o envio, para que ele não seja usado em paralelo.
2 - Não use mais o http cliente como um singleton e corra o risco de consumir bastante memória RAM.
3 - Aumente intervalo entre os envios.

Mudar o timeout não vai mudar nada!! O problema não é esse!!

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


04 Jul 2012, 14:00
Perfil WWW
Anatomy of an App
Anatomy of an App

Data de registro: 24 Nov 2011, 15:01
Mensagens: 123
Localização: São Paulo
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Fala Antunes vlw pela ajuda cara nao tenho nem como agradecer vlw mesmo !!!!!

Eu não sei o que eu posso estar fazendo de errado, mas é assim, eu estava enviando uma lista muito grande anteriormente, umas 50 linhas, chegava a ser inserido 20 linhas da lista no webservice e depois dava o erro socket timeout, ou socket closed,ai voce comentou para eu diminuir a lista , eu diminui fiz um for para montar uma lista com 10 intens e mandar inserir, ele inseri todos os 10 itens dessa lista tranquilo, eu mudei o service para iniciar a cada 60 segundos tbm, ele monta outra lista com os 10 itens restantes e inseri normalmente, só que quando ele for inserir a outra lista montada da o mesmo erro, é como se tivesse um limite de 20 itens, possou disso da erro no socket, tem como limpar o socket algo do tipo eu nao manjo muito disso.

Esse é o meu service que dispara a cada 60 segundos:

public void onStart(Intent intent, int startId){
           
            //Delega para uma nova thread
            new Thread(this).start();
           
        }
        public void onDestroy(){
           
        }
        //private void atualização(){
           
        //}
       
        public void Busca_Itens_desatualizado(){
            String g = "'G'";
            String whereitens="status <>" + g;
           
            try
            {
               
                listaItens = new ArrayList<Itens>();
                //
                c_id_tablet = getContentResolver().query(itens_servidor,new String[]{"_id","id_mesa","id_ambiente","id_produto","id_secao","nome_produto","quantidade_itens","preco_unitario","status","id_tablet","id_usuario"},whereitens,null,null);
                c_id_tablet.moveToFirst();
               
               
                int count_itens = c_id_tablet.getCount();
                String oi=String.valueOf(count_itens);
                Log.i("Retorna count <> de G no tablet para entrar no for da lista",oi);

//AQUI MONTA A LISTA QUE ESTA NO CELULAR PARA GRAVAR NO SERVIDOR
               
                for(int i=1; i<=15; i++){
                   
                    //Itens itens_  = new Itens();
                    Itens itens  = new Itens();
                   
                   
                    itens.set_id(c_id_tablet.getInt(c_id_tablet.getColumnIndex("_id")));
                    itens.setId_mesa(c_id_tablet.getInt(c_id_tablet.getColumnIndex("id_mesa")));
                    itens.setId_ambiente(c_id_tablet.getInt(c_id_tablet.getColumnIndex("id_ambiente")));
                    itens.setId_produto(c_id_tablet.getInt(c_id_tablet.getColumnIndex("id_produto")));
                    itens.setId_secao(c_id_tablet.getInt(c_id_tablet.getColumnIndex("id_secao")));
                    itens.setNome_produto(c_id_tablet.getString(c_id_tablet.getColumnIndex("nome_produto")));
                    itens.setQuantidade_itens(c_id_tablet.getInt(c_id_tablet.getColumnIndex("quantidade_itens")));
                    itens.setPreco_unitario(c_id_tablet.getFloat(c_id_tablet.getColumnIndex("preco_unitario")));
                    itens.setStatus(c_id_tablet.getString(c_id_tablet.getColumnIndex("status")));
                    itens.setId_tablet(c_id_tablet.getInt(c_id_tablet.getColumnIndex("id_tablet")));
                    itens.setId_usuario(c_id_tablet.getInt(c_id_tablet.getColumnIndex("id_usuario")));
                   
                    listaItens.add(itens);
                    c_id_tablet.moveToNext();
                }
               
                Log.i("Lista a ser enviada para o servidor ",listaItens.toString());
               
                 Log.i("pegou","passou");
               
                c_id_tablet.close();
               
           
        }
            catch(Exception erro){
                Log.i("Erro ao recuperar base atualizada do tablet"," erro tal : " + erro);
                }
           
            ItensMesaREST itensREST = new ItensMesaREST();
            try {
// GRAVA A LISTA NO SERVIDOR
                String resposta = itensREST.inserirListaItens(listaItens);
               
               
            } catch (Exception e) {
                Log.i("Erro ao inserir lista no web service ","Erro tal : " + e);
                e.printStackTrace();
               
            }

//CHAMA A LISTA QUE ESTA NO SERVIDOR
           
                 ItensMesaREST itensREST_Atualizado = new ItensMesaREST();
                    try {
                        ArrayList<ItensMesa> listaItens_Atualizados = (ArrayList<ItensMesa>) itensREST_Atualizado.getListaItensMesa_Atualizada();
                       
                        if(listaItens_Atualizados.isEmpty())
                            Log.i("VAzio", "esta vazio");
                        else{
                            Log.i("Cheio", " nao esta vazio");
                        }
                        int tamanho= listaItens_Atualizados.size();
                       
                        String fuck= String.valueOf(tamanho);
                        Log.i("qtd registros na lista atualizada qtd vezes no for ", " valor é " + fuck);
                       
                        for (int i = 0; i < listaItens_Atualizados.size(); i++) {  
                           
                        // ItensMesa itens_atualizados  = new ItensMesa();
                        
                        int id= listaItens_Atualizados.get(i).getId_tablet();
                        String valor= String.valueOf(id);
                        
                        Log.i("id_tablet recebido para atualizar", valor);
                           
                            ContentValues values = new ContentValues();
                           
                             values.put("status","G");
                            
                            Uri itens_update = Uri.parse("content://br.com.AdministradorPreconta.provider.preconta/itens/"+valor);
                             //ATUALIZA O CELULAR COM O QUE VEIO DO SERVIDOR
                             int uri=getContentResolver().update(itens_update, values,null, null);
                             
                          }    
                        Log.i("Lista Retornada do webservice ", "é" + listaItens_Atualizados);
                       
                    } catch (Exception e) {
                        Log.i("Erro ao recuperar atualização ","Erro tal : " + e);
                        e.printStackTrace();
                       
                    }
                    stopSelf();
               }

        @Override
        public void run() {
            Busca_Itens_desatualizado();
           
        }
               
               
            }

 


DA UMA FORÇA PLEASE !!!

ABRAÇOS !!!


04 Jul 2012, 14:25
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Posta o seu "ItensMesaREST"!

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


04 Jul 2012, 15:58
Perfil WWW
Anatomy of an App
Anatomy of an App

Data de registro: 24 Nov 2011, 15:01
Mensagens: 123
Localização: São Paulo
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Nosss Antunes vlw pela foça ai cara , noss to com vergonha de falar isso kkkkkkkkkkkkkkkk, mas dando uma fuçada aqui no código eu vi o erro,
o erro estava no meu webservice, quando estava implementando ele ,pesquisei na net e aqui no forum e o pessoal comentava que para trabalhar com webservice e banco de dados era interessante implementar um pooldeconexao, e o meu estava com o limite de 20 rsrsrsrs...

Pool:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/">
<Resource auth="Container"
    driverClassName="com.mysql.jdbc.Driver"
    maxActive="20" maxIdle="15" maxWait="-1"
    name="jdbc/TOMCAT_MYSQL_POOL"
    type="javax.sql.DataSource"
    url="jdbc:mysql://localhost:3306/dbmobile"
    username="root"
    password=""/>

    </Context>


Aproveitando voce indica mesmo o pool de conexao?

Se sim tem como eu ir zerando ele, para que ele não estore , conforme termine as operações que eu faço no banco ?


Mas mesmo assim vlw pela Força ai!!!!

Se precisar estaremos sempre aqui !!!

Abraços!!!


04 Jul 2012, 16:35
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Eu não uso, mas vc pode usar o pool sim, agora lembre-se de sempre fechar a conexão com o banco depois de usar. Assim vc libera recurso para o próximo!!

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


04 Jul 2012, 17:06
Perfil WWW
Anatomy of an App
Anatomy of an App

Data de registro: 24 Nov 2011, 15:01
Mensagens: 123
Localização: São Paulo
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Fala Antunes tudo certo cara ?

Ve se voce consegue me dar mais um help aqui rsrsrsrs... eu preciso de um metodo que busque uma lista no meu webservice, mas esse método tem que receber uma parametro do android que vai ser usado no meu where do select

Eu fiz assim :

Resource
@GET
        @Path("/retornaAtualizacaoGSON_TABLET")
        @Produces("application/json")
        public String atualizacaoTodos_tablets(Itens itens)throws Exception{
            return new Gson().toJson(new ItensMesaBusiness().listaItensAtualizado_Tablet(itens));
        }


Business
///////////////////////////////////////////
//CHAMA RETORNA TODOS OS ITENS POR TABLET
//////////////////////////////////////////
public ArrayList<Itens>listaItensAtualizado_Tablet(Itens itens) throws Exception{
ItensDAO itensDAO = new ItensDAO();

return itensDAO.listaitensAtualizadaTablet(itens)

}


DAO
public  ArrayList<Itens> listaitensAtualizadaTablet(Itens itens) throws Exception
    {
        ArrayList<Itens> listaitensAtualizadaTablet = null;
        conn=getConnection();
       
       
         
        try{
           

            itens.getIdent_tablet();
             String valor=  itens.toString();
             System.out.println("O valor do tablet e :" +valor);
             int idem_tablet= Integer.parseInt(valor);
             
             
        String SQL="SELECT * FROM tb_itens WHERE st_tablet= 'valor' AND quantidade_itens <> 0";
        stmt=conn.prepareStatement(SQL);
        rs= stmt.executeQuery();
       
       
        listaitensAtualizadaTablet = new ArrayList<Itens>();
       
        while(rs.next())
        {
             itens= new Itens() ;
             
             itens.setId_secao(rs.getInt("id_secao"));
             itens.setQuantidade_itens(rs.getInt("quantidade_itens"));
             itens.setPreco_unitario(rs.getInt("preco_unitario"));
             itens.setSt_tablet(rs.getString("st_tablet"));
             itens.setSt_servidor(rs.getString("st_servidor"));
             itens.setId_tablet(rs.getInt("id_tablet"));
             itens.setId_usuario(rs.getInt("id_usuario"));
             itens.setId_servidor(rs.getInt("id_servidor"));
             
           
             listaitensAtualizadaTablet.add(itens);
             
             
        }
       
        }
        catch(SQLException e){
            System.out.println("Erro ao buscar base de outro trablet" + e);
            e.printStackTrace();
        }
         System.out.println("O valor do tablet e :");
        return listaitensAtualizadaTablet;
    }


Porém esta dando um erro :

06/07/2012 14:47:59 com.sun.jersey.spi.container.ContainerRequest getEntity
GRAVE: A message body reader for Java class br.com.WSPreConta.model.ItensMesa, and Java type class br.com.WSPreConta.model.ItensMesa, and MIME media type application/octet-stream was not found.
The registered message body readers compatible with the MIME media type are:
application/octet-stream ->
  com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
  com.sun.jersey.core.impl.provider.entity.FileProvider
  com.sun.jersey.core.impl.provider.entity.InputStreamProvider
  com.sun.jersey.core.impl.provider.entity.DataSourceProvider
  com.sun.jersey.core.impl.provider.entity.RenderedImageProvider
*/* ->
  com.sun.jersey.core.impl.provider.entity.FormProvider
  com.sun.jersey.core.impl.provider.entity.StringProvider
  com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
  com.sun.jersey.core.impl.provider.entity.FileProvider
  com.sun.jersey.core.impl.provider.entity.InputStreamProvider
  com.sun.jersey.core.impl.provider.entity.DataSourceProvider
  com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
  com.sun.jersey.core.impl.provider.entity.ReaderProvider
  com.sun.jersey.core.impl.provider.entity.DocumentProvider
  com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
  com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
  com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
  com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General
  com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$General
  com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$General
  com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
  com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
  com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
  com.sun.jersey.core.impl.provider.entity.EntityHolderReader
  com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
  com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General
  com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy




Voce pode me dizer onde eu estou errando ?

Vlw Abraços !!!!


06 Jul 2012, 16:56
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
É que vc está fazendo um POST usando o GET!!

Tenta modificar o seu método "atualizacaoTodos_tablets" para permitir receber o objeto "Itens".

Lembre-se de mudar o "@GET" para "@POST" e incluir a annotation "@Consumes".

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


06 Jul 2012, 17:26
Perfil WWW
Anatomy of an App
Anatomy of an App

Data de registro: 24 Nov 2011, 15:01
Mensagens: 123
Localização: São Paulo
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Boa Tarde Antunes blz ?

Cara ve se voce pode me ajudar, o que eu posso usar para montar um metodo para testar a minha conexão com o webservice?

Uma espécie de ping, eu passo a url rest ex: "http://localhost:808/wsp/rest/", se responder eu libero o app, se não eu digo que o
webservice esta fora do ar.

Eu ja tentei de tudo mas não da certo aqui, tem algum método fácil de fazer isso, utilizando o seu próprio exemplo aqui.

Abraços!!!

Vlw por tudo hein !!!!


10 Jul 2012, 18:45
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Não entendi bem o que vc quer fazer, mas não precisa fazer isso, basta tentar acessar o WS se der alguma exceção é pq não funcionou!!

Não precisa ir no WS antes (ping) pra saber isso!!

Usa a exceção para tentar de novo ou para mostrar alguma coisa para o usuário!!

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


10 Jul 2012, 19:09
Perfil WWW
What is Android?
What is Android?

Data de registro: 13 Mai 2012, 23:26
Mensagens: 2
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Gostei muito do tutorial. Inclusive implementei uma pequena solução android usando webservice restful com Json e Gson seguindo o seu tutorial.

Entretanto, estou com uma dúvida. Como posso implementar uma consulta ao Webservice usando a anotação BuscarTodosGson ou outra que seja, mas que eu consiga mandar duas Strings (nome, argumento) por exemplo para a resposta ser uma lista apenas com os clientes que correspondam a tais argumentos apenas?

Criei um construtor na classe Banco, que recebe tais Strings, também o método GetBancoInstance(String, String) que aciona tal construtor, mas não está funcionando e não estou conseguindo ver o erro. Você pode me dar uma dica?


07 Ago 2012, 20:57
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Vc pode fazer de três formas:

1. Simplesmente passando os parâmetros na URL:

URL: "http://localhost:8080/SeuWebService/bucar/nome/argumento"


    @GET
    @Path("/buscar/{nome}/{argumento}")
    @Produces("application/json")
    public SeuObjeto getSeuObjeto(@PathParam("nome") String nome, @PathParam("argumento") String argumento){
          //código para buscar o seu resultado
     return seuObjeto;
    }
 


2. Vc pode passar como parâmetro na URL:

URL: "http://localhost:8080/SeuWebService/bucar?nome=nome&argumento=argumento"


    @GET
    @Path("/buscar")
    @Produces("application/json")
    public SeuObjeto getSeuObjeto(@QueryParam("nome") String nome, @QueryParam("argumento") String argumento){
          //código para buscar o seu resultado
     return seuObjeto;
    }
 


3. Vc pode passar um objeto de busca para o seu ws usando o método POST:

URL: "http://localhost:8080/SeuWebService/bucar"


    @POST
    @Path("/buscar")
    @Produces("application/json")
    @Consumes("application/json")
    public SeuObjeto getSeuObjeto(ObjetoBusca objetoBusca){
           String nome = objetoBusca.getNome();
           String argumento = objetoBusca.getArgumento();
          //código para buscar o seu resultado
     return seuObjeto;
    }
 



Agora basta vc escolher.. =D

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


08 Ago 2012, 01:11
Perfil WWW
What is Android?
What is Android?

Data de registro: 13 Mai 2012, 23:26
Mensagens: 2
Mensagem Re: [RESOLVIDO] Web Service RESTful 2 [+Consumir+Android+Cod
Antunes, boa tarde

Usei a 3ª sugestão e funcionou perfeitamente.

Obrigado pela ajuda

Abs


08 Ago 2012, 15:16
Perfil
What is a Activity?
What is a Activity?

Data de registro: 19 Fev 2012, 23:39
Mensagens: 15
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
estou com uma dúvida, no caso preciso passar um parametro no meu GET. como faço?

segue meu código do get

public final String[] get(String url) {

        String[] result = new String[2];
        HttpGet httpget = new HttpGet(url);
        HttpResponse response;

        try {
            response = HttpClientSingleton.getHttpClientInstace().execute(httpget);
            HttpEntity entity = response.getEntity();

            if (entity != null) {
                result[0] = String.valueOf(response.getStatusLine()
                        .getStatusCode());
                InputStream instream = entity.getContent();
                result[1] = toString(instream);
                instream.close();
                Log.i("post", "Result from post JsonPost : " + result[0]
                                                                    + " : " + result[1]);
            }
        } catch (Exception e) {
            Log.e("NGVL", "Falha ao acessar Web service GET", e);
            result[0] = "0";
            result[1] = "Falha de rede!";
        }
        return result;
    }


minha classe Resource


    @GET
    @Path("/listaProduto")
    @Produces("application/json")
    public String getListaProduto(String categoria){
        return new Gson().toJson(new CardapioBusiness().listaProduto(categoria));
    }


e por fim minha rest

public class CardapioRest {
    private static final String URL_WS = "http://10.0.2.2:8080/WebServiceREST/cardapio/";
    private static final String String = null;
   
   
    public  List<Cardapio> getListaProduto(String categoria) throws Exception {
       
        Gson gson = new Gson();
        String clienteJSON = gson.toJson(categoria);
       
        String[] resposta = new WebServiceDroid().get(URL_WS + "listaProduto");
       
        if (resposta[0].equals("200")) {

            List<Cardapio> listaProduto = new ArrayList<Cardapio>();
            JsonParser parser = new JsonParser();
            JsonArray array = parser.parse(resposta[1]).getAsJsonArray();
           
            for (int i = 0; i < array.size(); i++) {
                listaProduto.add((Cardapio) gson.fromJson(array.get(i), Cardapio.class));
            }
            return listaProduto;
        } else {
            throw new Exception(resposta[1]);
        }
    }
}
 



No caso na rest quando eu chamo o webservice queria passar o parametro ali.

abs


19 Ago 2012, 17:24
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Então olhe essa resposta: viewtopic.php?p=145241#p145241

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


19 Ago 2012, 17:32
Perfil WWW
What is a Activity?
What is a Activity?

Data de registro: 14 Dez 2009, 13:11
Mensagens: 17
Localização: Blumenau
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Onde ta os fontes do projeto, muito bom esse projeto parabéns.. fiz usando SOAP, ficou lerdo pra diabo...

onde ta os links, não achei aqui..

Parabéns

Att.


23 Ago 2012, 04:07
Perfil WWW
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
juniorsatanas escreveu:
Onde ta os fontes do projeto, muito bom esse projeto parabéns.. fiz usando SOAP, ficou lerdo pra diabo...

onde ta os links, não achei aqui..

Parabéns

Att.


Estão no final do meu primeiro post!

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


23 Ago 2012, 11:57
Perfil WWW
What is DDMS?
What is DDMS?

Data de registro: 02 Jul 2012, 01:27
Mensagens: 31
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
antunes, me ajuda aqui mano:

esse é o erro que aparece quando eu tento chamar o método:

try {
                dados = estabelecimentoREST.getListaBar();
            } catch (Exception e) {
                e.printStackTrace();
            }


Para alimentar minha lista e logo em seguida colocar ela no ListView, mas tem uma coisa, quando da o erro, o app recebe um shutdown,
queria saber como eu poderia fazer para evitar isso... Eu consigo verificar se a conexão e impedir o progresso do app, mas o usuário pode
ter internet e o problema esta no meu WS, desde então, como eu faria para caso o problema seja meu WS apareça um toast ou um alert dizendo
"que feio servidor" ou qualquer coisa que impedisse que a aplicação fosse fechada...

09-08 10:15:27.695: E/NGVL(450): Falha ao acessar Web service
09-08 10:15:27.695: E/NGVL(450): org.apache.http.NoHttpResponseException: The target server failed to respond
09-08 10:15:27.695: E/NGVL(450): at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:85)
09-08 10:15:27.695: E/NGVL(450): at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174)
09-08 10:15:27.695: E/NGVL(450): at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:179)
09-08 10:15:27.695: E/NGVL(450): at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235)
09-08 10:15:27.695: E/NGVL(450): at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259)
09-08 10:15:27.695: E/NGVL(450): at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279)
09-08 10:15:27.695: E/NGVL(450): at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)
09-08 10:15:27.695: E/NGVL(450): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:410)
09-08 10:15:27.695: E/NGVL(450): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
09-08 10:15:27.695: E/NGVL(450): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
09-08 10:15:27.695: E/NGVL(450): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
09-08 10:15:27.695: E/NGVL(450): at resource.WebServiceBar.get(WebServiceBar.java:24)
09-08 10:15:27.695: E/NGVL(450): at resource.EstabelecimentoREST.getListaBar(EstabelecimentoREST.java:30)
09-08 10:15:27.695: E/NGVL(450): at app.qualquercanto.BarActivity$PageAdapter.instantiateItem(BarActivity.java:152)
09-08 10:15:27.695: E/NGVL(450): at android.support.v4.view.PagerAdapter.instantiateItem(PagerAdapter.java:110)
09-08 10:15:27.695: E/NGVL(450): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:692)
09-08 10:15:27.695: E/NGVL(450): at android.support.v4.view.ViewPager.populate(ViewPager.java:821)
09-08 10:15:27.695: E/NGVL(450): at android.support.v4.view.ViewPager.populate(ViewPager.java:772)
09-08 10:15:27.695: E/NGVL(450): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1234)
09-08 10:15:27.695: E/NGVL(450): at android.view.View.measure(View.java:8171)
09-08 10:15:27.695: E/NGVL(450): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
09-08 10:15:27.695: E/NGVL(450): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)
09-08 10:15:27.695: E/NGVL(450): at android.widget.LinearLayout.measureVertical(LinearLayout.java:381)
09-08 10:15:27.695: E/NGVL(450): at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
09-08 10:15:27.695: E/NGVL(450): at android.view.View.measure(View.java:8171)
09-08 10:15:27.695: E/NGVL(450): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
09-08 10:15:27.695: E/NGVL(450): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
09-08 10:15:27.695: E/NGVL(450): at android.view.View.measure(View.java:8171)
09-08 10:15:27.695: E/NGVL(450): at android.widget.LinearLayout.measureVertical(LinearLayout.java:526)
09-08 10:15:27.695: E/NGVL(450): at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
09-08 10:15:27.695: E/NGVL(450): at android.view.View.measure(View.java:8171)
09-08 10:15:27.695: E/NGVL(450): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
09-08 10:15:27.695: E/NGVL(450): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
09-08 10:15:27.695: E/NGVL(450): at android.view.View.measure(View.java:8171)
09-08 10:15:27.695: E/NGVL(450): at android.view.ViewRoot.performTraversals(ViewRoot.java:801)
09-08 10:15:27.695: E/NGVL(450): at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
09-08 10:15:27.695: E/NGVL(450): at android.os.Handler.dispatchMessage(Handler.java:99)
09-08 10:15:27.695: E/NGVL(450): at android.os.Looper.loop(Looper.java:123)
09-08 10:15:27.695: E/NGVL(450): at android.app.ActivityThread.main(ActivityThread.java:4627)
09-08 10:15:27.695: E/NGVL(450): at java.lang.reflect.Method.invokeNative(Native Method)
09-08 10:15:27.695: E/NGVL(450): at java.lang.reflect.Method.invoke(Method.java:521)
09-08 10:15:27.695: E/NGVL(450): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-08 10:15:27.695: E/NGVL(450): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-08 10:15:27.695: E/NGVL(450): at dalvik.system.NativeStart.main(Native Method)
09-08 10:15:27.695: W/System.err(450): java.lang.Exception: Falha na rede!
09-08 10:15:27.695: W/System.err(450): at resource.EstabelecimentoREST.getListaBar(EstabelecimentoREST.java:42)
09-08 10:15:27.695: W/System.err(450): at app.qualquercanto.BarActivity$PageAdapter.instantiateItem(BarActivity.java:152)
09-08 10:15:27.695: W/System.err(450): at android.support.v4.view.PagerAdapter.instantiateItem(PagerAdapter.java:110)
09-08 10:15:27.695: W/System.err(450): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:692)
09-08 10:15:27.695: W/System.err(450): at android.support.v4.view.ViewPager.populate(ViewPager.java:821)
09-08 10:15:27.695: W/System.err(450): at android.support.v4.view.ViewPager.populate(ViewPager.java:772)
09-08 10:15:27.695: W/System.err(450): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1234)
09-08 10:15:27.695: W/System.err(450): at android.view.View.measure(View.java:8171)
09-08 10:15:27.705: W/System.err(450): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
09-08 10:15:27.705: W/System.err(450): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)
09-08 10:15:27.705: W/System.err(450): at android.widget.LinearLayout.measureVertical(LinearLayout.java:381)
09-08 10:15:27.705: W/System.err(450): at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
09-08 10:15:27.705: W/System.err(450): at android.view.View.measure(View.java:8171)
09-08 10:15:27.705: W/System.err(450): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
09-08 10:15:27.705: W/System.err(450): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
09-08 10:15:27.705: W/System.err(450): at android.view.View.measure(View.java:8171)
09-08 10:15:27.705: W/System.err(450): at android.widget.LinearLayout.measureVertical(LinearLayout.java:526)
09-08 10:15:27.705: W/System.err(450): at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
09-08 10:15:27.705: W/System.err(450): at android.view.View.measure(View.java:8171)
09-08 10:15:27.705: W/System.err(450): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
09-08 10:15:27.705: W/System.err(450): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
09-08 10:15:27.705: W/System.err(450): at android.view.View.measure(View.java:8171)
09-08 10:15:27.715: W/System.err(450): at android.view.ViewRoot.performTraversals(ViewRoot.java:801)
09-08 10:15:27.715: W/System.err(450): at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
09-08 10:15:27.715: W/System.err(450): at android.os.Handler.dispatchMessage(Handler.java:99)
09-08 10:15:27.715: W/System.err(450): at android.os.Looper.loop(Looper.java:123)
09-08 10:15:27.715: W/System.err(450): at android.app.ActivityThread.main(ActivityThread.java:4627)
09-08 10:15:27.715: W/System.err(450): at java.lang.reflect.Method.invokeNative(Native Method)
09-08 10:15:27.715: W/System.err(450): at java.lang.reflect.Method.invoke(Method.java:521)
09-08 10:15:27.715: W/System.err(450): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-08 10:15:27.715: W/System.err(450): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-08 10:15:27.715: W/System.err(450): at dalvik.system.NativeStart.main(Native Method)


08 Set 2012, 12:25
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Trate o erro exatamente dessa forma, com try/catch e não popule o seu listview!!

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


08 Set 2012, 18:25
Perfil WWW
What is DDMS?
What is DDMS?

Data de registro: 02 Jul 2012, 01:27
Mensagens: 31
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Consegui resolver cara, coloquei tudo do jeito que eu quero quando der certo no try, e tudo que eu queria que aparecesse em caso de erro, pronto xD

Agora só falta fazer meu app pegar imagens do WS e colocar no gridView para fazer igual ao caso 0, onde listo dados num listView,
agora é só listar imagens num gridView, vamo que vamos! Vlw cara :D


09 Set 2012, 01:06
Perfil
What is DDMS?
What is DDMS?

Data de registro: 02 Jul 2012, 01:27
Mensagens: 31
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
antunes, já que o ws do meu app é fruto do seu artigo, queria que você me ajudasse nessa parte. Vou explicar rapidamente meu app...

MainActivity com dois botões(assim que clicados ele verificam se tem internet, mostrando um toast informando falha na conexão e
impedindo a ida para a próxima activity), chamam BarActivity e RestauranteActivity, respectivamente. Ambos mostrar uma listView(customizada)
e um gridView(customizado) que são abastecidos através de dados vindos do meu WS. Após o clique, se tem conexão ele vai para a activity, é agora
que a magia tem que acontecer... Se consegui conectar com o WS ele mostrar a lista e o gridView com as imagens, caso não ele mostra um toast e
a lista e o grid em branco... É aqui que vosso conhecimento irá me ajudar, o método que eu estou usando para tentar conectar com o WS é nada mais que
um método que me retorna os dados que serão mostrados na listView(isso esta certo ou tem algum método específico?) só que ele as vezes demora, ai fica
a tela travada, por isso eu queria implementar o AsyncTask para que apareça aquele AGUARDE... durante essa verificação.. só que não estou conseguindo
pensar em como fazer isso... Visando fazer menos consulta ao bando para diminuir o consumo eu pensei em nessa hora(do AGUARDE) ele puxar todos os dados
que serão usados na activity, apenas duas listas e apartir dai colocalos em uma Lista e distribuir na activity, procede esse raciocínio? Se sim, queria saber como
faria esse Async por que já rodei o google, achei vários exemplos, porem, não to me dando bem.

public class Processo extends AsyncTask<Void, Void, Void> {
       
        private final EstabelecimentoREST estabelecimentoREST = new EstabelecimentoREST();
        private List<Estabelecimento> dadosBar, anuncioBar;
        private ProgressDialog progress;
        private Context context;
       
        public Processo(Context context) {
            this.context = context;
        }
       
        @Override
        protected void onPreExecute() {
            // método que mostra o progressDialog
            progress = new ProgressDialog(context);
            progress.setMessage("Aguarde...");
            progress.show();
        }
       
        @Override
        protected Void doInBackground(Void... paramss) {
           
            try {
                //tentando pegar os dados
                dadosBar = estabelecimentoREST.getListaBar();
                anuncioBar = estabelecimentoREST.getListaAnuncioBar();
            }catch (Exception e) {
                // se der erro mostra um toas e vai para a activity sem mostrar nada
                // o tipo desse metodo é void mesmo?
                // aa detalhe, quanto a thred, no async tem que fazer isso tmb ou já é tudo implementado?
            }

            return null;
        }
       
        @Override
        protected void onPostExecute(Void result) {
            //metodo que terminar tudo
            progress.dismiss();
        }
       
        @Override
        protected void onProgressUpdate(Void... values) {
            //nao precisa atualizar nada, so ficar o nome aguardando e a bolinha girando
        }
       
    }


10 Set 2012, 05:21
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
É exatamente isso. Agora dentro do "onPostExecute" vc vai dar o "setAdapter" na sua "ListView"!!

Vc pode passar ele como parâmetro para a sua "AsyncTask":

public Processo(Context context, ListView listView) {...}


Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


11 Set 2012, 01:24
Perfil WWW
What is DDMS?
What is DDMS?

Data de registro: 02 Jul 2012, 01:27
Mensagens: 31
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Cara, na boa, eu já resolvi coisa pior que isso, mas eu simplesmente não consigo pensar no que fazer... poxa.. se tu pegar essa minha
classe aew, tu consegue fazer me explicando? Eu simplesmente não consigo imaginar algo parar fazer aew!


11 Set 2012, 02:47
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Mas eu já expliquei!!

antunes escreveu:
É exatamente isso. Agora dentro do "onPostExecute" vc vai dar o "setAdapter" na sua "ListView"!!

Vc pode passar ele como parâmetro para a sua "AsyncTask":

public Processo(Context context, ListView listView) {...}


Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


11 Set 2012, 23:43
Perfil WWW
What is a Activity?
What is a Activity?

Data de registro: 14 Dez 2009, 13:11
Mensagens: 17
Localização: Blumenau
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
To pegando um retorno do webservice que um html, a pagina do tomcat por que ?


ESSE CARA QUE FEZ ESSE WEB SERVICE E UM MONSTRO ... PARABÉNS !


Você não tem permissões suficientes para ver os arquivos anexados nesta mensagem.


14 Set 2012, 11:04
Perfil WWW
What is a Activity?
What is a Activity?

Data de registro: 14 Dez 2009, 13:11
Mensagens: 17
Localização: Blumenau
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
antunes OBRIGADO E PRABÉNS !


14 Set 2012, 11:07
Perfil WWW
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Junior,

Muito obrigado!!

O que acontece é que o tomcat formata(com cabeçalho e rodapé) a mensagem de erro para ser mais inteligível.

O que vc pode fazer é tratar esse erro para devolver uma mensagem sua e não a padrão do tomcat.

No seu caso o erro foi um "404" que significa que o recurso que vc tentou acessar não foi encontrado. Ou ele não existe mesmo ou vc digitou a url errada.

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


14 Set 2012, 16:36
Perfil WWW
Android application
Android application

Data de registro: 01 Ago 2012, 11:43
Mensagens: 58
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Olá Antunes,

Opa qnt tempo cara então consegui criar o WS, e consegui consumir o Json que vem de lá so que puis um log para poder visualizar o que está pegando e conforme esperado no log me mostrar bonitinho tudo, so que realmente preciso de ajuda para poder criar uma listview agora disso não estou conseguindo e nem entendendo bem as coisas me da uma força ae cara pra fazer isso?

Estou querendo criar uma listview como a deste exemplo : http://www.androidhive.info/2012/01/android-json-parsing-tutorial/
Seria possível vc me ajudar a fazer isso?


14 Set 2012, 18:15
Perfil
What is a Activity?
What is a Activity?

Data de registro: 24 Ago 2011, 12:15
Mensagens: 14
Localização: Patos, PB
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Olá Antunes, parabéns pelo artigo, me ajudou bastante.
Seguinte, estou com um problema no momento de tentar converter o JSON retornado do WS para objetos, na
seguinte instrução:

JsonArray array = parser.parse(resposta[1]).getAsJsonArray();

A seguinte exceção é mostrada: java.lang.IllegalStateException: This is not a JSON Array.
Porém, não achei nada de estranho. O meu contexto refere-se a uma app Android que recebe
uma lista de vendedores.

Segue o codigo referente ao bean do vendedor.


@XmlRootElement
public class Vendedor implements Serializable{

    private long codigo;
    private String nome;
    private double saldo;
    private double comissao;
    private boolean ativo;
    private Contato contato;
    private MobVipInfo mobVipInfo;

    public Vendedor() {
        this.contato = new Contato();
        this.mobVipInfo = new MobVipInfo();
    }

    @XmlElement
    public Contato getContato() {
        return contato;
    }

    @XmlElement
    public MobVipInfo getMobVipInfo() {
        return mobVipInfo;
    }

    // demais getters e setters...
}

@XmlRootElement
public class Contato implements Serializable{
   
    private String telefone;
    private String email;
   
    // getters e setters...
}

@XmlRootElement
public class MobVipInfo implements Serializable{

    private String versaoMobVip;
    private String senhaMobVip;
    private Date ultimaSincronizacao;
    private Date ultimaAtualizacao;
    private Date ultimoEnvio;

   // getters e setters
 
}

 


Neste caso uso composições de objetos e não apenas tipos primitivos, não se está correto o uso das anotações.
Um exemplo de retorno:

{"vendedor":[{"ativo":"true","codigo":"60","comissao":"0.0","contato":{"email":"teste@gmail.com"},"mobVipInfo":{"ultimaSincronizacao":"2012-09-05T00:00:00-03:00"},"nome":"FULANO DA SILVA","saldo":"-3537.79"},{"ativo":"false","codigo":"49","comissao":"2.0","contato":{"email":"teste@hotmail.com"},"mobVipInfo":{"ultimaSincronizacao":"2012-09-05T00:00:00-03:00","ultimoEnvio":"2011-05-27T00:00:00-03:00"},"nome":"JOSÉ DA SILVA FERNANDES ","saldo":"0.0"},{"ativo":"false","codigo":"44","comissao":"2.0","contato":{"email":""},"mobVipInfo":{"ultimaSincronizacao":"2012-09-05T00:00:00-03:00"},"nome":"CHICO","saldo":"0.0"}]}


14 Set 2012, 19:36
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Oneh escreveu:
Olá Antunes,

Opa qnt tempo cara então consegui criar o WS, e consegui consumir o Json que vem de lá so que puis um log para poder visualizar o que está pegando e conforme esperado no log me mostrar bonitinho tudo, so que realmente preciso de ajuda para poder criar uma listview agora disso não estou conseguindo e nem entendendo bem as coisas me da uma força ae cara pra fazer isso?

Estou querendo criar uma listview como a deste exemplo : http://www.androidhive.info/2012/01/android-json-parsing-tutorial/
Seria possível vc me ajudar a fazer isso?


Rapaz,

Muito complicado o que o cara fez. Use o meu exemplo para receber o JSON e fazer o parse para a sua lista de objetos.

Feito isso, vc pode criar um ListAdapter para popular a sua ListView com uma ListRow customizada.

Esse link vai te ajudar: http://romarconsultoria.blogspot.com.br ... -para.html

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


14 Set 2012, 20:25
Perfil WWW
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
allyson escreveu:
Olá Antunes, parabéns pelo artigo, me ajudou bastante.
Seguinte, estou com um problema no momento de tentar converter o JSON retornado do WS para objetos, na
seguinte instrução:

JsonArray array = parser.parse(resposta[1]).getAsJsonArray();

A seguinte exceção é mostrada: java.lang.IllegalStateException: This is not a JSON Array.
Porém, não achei nada de estranho. O meu contexto refere-se a uma app Android que recebe
uma lista de vendedores.

Segue o codigo referente ao bean do vendedor.


@XmlRootElement
public class Vendedor implements Serializable{

    private long codigo;
    private String nome;
    private double saldo;
    private double comissao;
    private boolean ativo;
    private Contato contato;
    private MobVipInfo mobVipInfo;

    public Vendedor() {
        this.contato = new Contato();
        this.mobVipInfo = new MobVipInfo();
    }

    @XmlElement
    public Contato getContato() {
        return contato;
    }

    @XmlElement
    public MobVipInfo getMobVipInfo() {
        return mobVipInfo;
    }

    // demais getters e setters...
}

@XmlRootElement
public class Contato implements Serializable{
   
    private String telefone;
    private String email;
   
    // getters e setters...
}

@XmlRootElement
public class MobVipInfo implements Serializable{

    private String versaoMobVip;
    private String senhaMobVip;
    private Date ultimaSincronizacao;
    private Date ultimaAtualizacao;
    private Date ultimoEnvio;

   // getters e setters
 
}

 


Neste caso uso composições de objetos e não apenas tipos primitivos, não se está correto o uso das anotações.
Um exemplo de retorno:

{"vendedor":[{"ativo":"true","codigo":"60","comissao":"0.0","contato":{"email":"teste@gmail.com"},"mobVipInfo":{"ultimaSincronizacao":"2012-09-05T00:00:00-03:00"},"nome":"FULANO DA SILVA","saldo":"-3537.79"},{"ativo":"false","codigo":"49","comissao":"2.0","contato":{"email":"teste@hotmail.com"},"mobVipInfo":{"ultimaSincronizacao":"2012-09-05T00:00:00-03:00","ultimoEnvio":"2011-05-27T00:00:00-03:00"},"nome":"JOSÉ DA SILVA FERNANDES ","saldo":"0.0"},{"ativo":"false","codigo":"44","comissao":"2.0","contato":{"email":""},"mobVipInfo":{"ultimaSincronizacao":"2012-09-05T00:00:00-03:00"},"nome":"CHICO","saldo":"0.0"}]}



Allyson,

Isso acontece pq o seu JSON não é um array e sim um objeto contendo um array.

Isso seria um array:

[{"ativo":"true","codigo":"60","comissao":"0.0","contato":{"email":"teste@gmail.com"},"mobVipInfo":{"ultimaSincronizacao":"2012-09-05T00:00:00-03:00"},"nome":"FULANO DA SILVA","saldo":"-3537.79"},{"ativo":"false","codigo":"49","comissao":"2.0","contato":{"email":"teste@hotmail.com"},"mobVipInfo":{"ultimaSincronizacao":"2012-09-05T00:00:00-03:00","ultimoEnvio":"2011-05-27T00:00:00-03:00"},"nome":"JOSÉ DA SILVA FERNANDES ","saldo":"0.0"},{"ativo":"false","codigo":"44","comissao":"2.0","contato":{"email":""},"mobVipInfo":{"ultimaSincronizacao":"2012-09-05T00:00:00-03:00"},"nome":"CHICO","saldo":"0.0"}]


Não sei se vai funcionar, mas tenta isso aqui:

JsonArray array = parser.parse(resposta[1]).getAsJsonObject().get("vendedor").getAsJsonArray();


Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


14 Set 2012, 21:15
Perfil WWW
Android application
Android application

Data de registro: 01 Ago 2012, 11:43
Mensagens: 58
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Olá antunes to com o mesmo problema que o amigo acima so que substitui essa linha:
JsonArray array = parser.parse(resposta[1]).getAsJsonObject().get("vendedor").getAsJsonArray();

e agora qnd clico da um toast sem nada escrito e no log o seguinte erro:


09-17 14:36:24.333: W/System.err(338): java.lang.NullPointerException
09-17 14:36:24.343: W/System.err(338): at com.tcc.pericia.DAO.GuiaDAO.getListaGuia(GuiaDAO.java:40)
09-17 14:36:24.343: W/System.err(338): at com.tcc.pericia.Controller.MenuController$1.onClick(MenuController.java:52)
09-17 14:36:24.353: W/System.err(338): at android.view.View.performClick(View.java:2408)
09-17 14:36:24.353: W/System.err(338): at android.view.View$PerformClick.run(View.java:8816)
09-17 14:36:24.363: W/System.err(338): at android.os.Handler.handleCallback(Handler.java:587)
09-17 14:36:24.383: W/System.err(338): at android.os.Handler.dispatchMessage(Handler.java:92)
09-17 14:36:24.383: W/System.err(338): at android.os.Looper.loop(Looper.java:123)
09-17 14:36:24.383: W/System.err(338): at android.app.ActivityThread.main(ActivityThread.java:4627)
09-17 14:36:24.383: W/System.err(338): at java.lang.reflect.Method.invokeNative(Native Method)
09-17 14:36:24.393: W/System.err(338): at java.lang.reflect.Method.invoke(Method.java:521)
09-17 14:36:24.393: W/System.err(338): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-17 14:36:24.403: W/System.err(338): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-17 14:36:24.403: W/System.err(338): at dalvik.system.NativeStart.main(Native Method)


17 Set 2012, 13:39
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Artigo] Web Service RESTful 2 [+Consumir+Android+Code]
Veja o que tem na classe "GuiaDAO.java", linha 40.

Vc deve estar acessando um método de um objeto nulo!!

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


18 Set 2012, 01:56
Perfil WWW
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 271 Mensagens ]  Ir para a página Anterior  1, 2, 3, 4, 5, 6  Próximo

Quem está online

Usuários vendo este fórum: adilson, Alessandro Tavares, Alex Marcelo Burnett, allart, alsimoes, Anakin Skywalker, ANDRE FELIX DE ASSIS, arilsonm, ariostorecco, arkanjo, axellsan, azero, Bass, Beru Lars, betofigu, BiG_SerGiO, Biggs Darklighter, BloggerCaOS, caio, cavenaghi, celiapinheiro, Celso Jr., Chassot, Chaves, Christiane, Clauber, criscmaia, dalmeidabr, danilosouza, Darkluna, Dassi, Delão, Demerval, developermaster, digiwise, Dirceu W. C. Conte, dnakamashi, dudu795, ederson_4, edlinux, Eneias, epsilva, felipe.buarque, fernandodotnet, fernandofsf, Filipe larizzatti, flaviolemos, frances135, freak, geovanebg, Gomes, grandebaro, hellbest, Heritrix, HyagoRules, icarodavi, interservic, ismavolk, jacksonst, jasn, jeanbr07, Josinhaz, Juliobcosta, JuniorE, juniorsk8, Katia, kristopher, Legiao, linukiss, lisbao, Lord, Mace Windu, Marcelo Lima, MarceloMC, marciosoliveira, marcosandreao, Marlus Dias Silva, MauNunes, mendes_lu, Mig, mmiottobarbosa, Moisés Souto, msmdark, MSPRAFAEL, nardosnt, nglaubervasc, nightwatch, nina.rm, nino, nirvana, nishimura.ichigo, pamonteiro, pgsnit, phfmendes, rafael.winter, rafaelvital, renanpl, renata, rguadagnini, Rickxdx, rogeriokta, romuloigor, romulotales, rotmeil, rtodao, Rubens Prates, samuel.cavanieri, sandro, shadow, shazaum, sidnei.gs, sjta, sobrinho, suportecr, Tangerina, tavares767, tChAnDy, thiagoalgo, tiago, Transtago, vieira, wender, woyzeck, wylken, yuri82, zaquiel, zeantonio e 1 visitante


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:
cron

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi