Ver mensagens sem resposta | Ver tópicos ativos Hoje é 15 Nov 2019, 14:20



Responder Tópico  [ 140 Mensagens ]  Ir para a página Anterior  1, 2, 3
 [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Factory] 
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 3 [+PgSQL+DAO+Business+Fact
Rapaz,

Eu não entendi muito bem o que vc quer fazer, mas pq não passa um objeto com várias listas dentro?? Acho que assim seria muito mais fácil!!

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 Set 2013, 00:52
Perfil WWW
What is Android?
What is Android?

Data de registro: 05 Set 2013, 18:53
Mensagens: 2
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Viva,
foi isso mesmo que eu fiz...acabei de resolver /uu

Vinha aqui postar a solução, mas já foi tarde /17

Muito obrigado pela atenção.

Cumprimentos


06 Set 2013, 02:19
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 3 [+PgSQL+DAO+Business+Fact
embds escreveu:
Viva,
foi isso mesmo que eu fiz...acabei de resolver /uu

Vinha aqui postar a solução, mas já foi tarde /17

Muito obrigado pela atenção.

Cumprimentos


Isso ae!! O importante é buscar uma solução sem contar, exclusivamente, com a nossa ajuda. Parabéns!!

Qualquer dúvida posta aí, que assim que der o pessoal ajuda!! /uu

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 Set 2013, 03:30
Perfil WWW
What is Android?
What is Android?

Data de registro: 18 Set 2013, 23:02
Mensagens: 6
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
antunes escreveu:
Goncalves1 escreveu:
Boa tarde Antunes fiz webService seguindo seu exemplo mais utilizando mysql
Queria saber se a alguma forma de por senha para acessa o WS


O que vc pode fazer é implementar algum tipo de autorização, por exemplo o OAuth.

O que ele faz é passar um token para o usuário do seu WS que deverá enviar esse token no header de todas as requisições enviadas ao WS sob a tag "Authorization".

Ou criar a sua própria forma de autenticação/autorização.

Ainda não tive tempo pra terminar, mas eu estou pra postar um modelo simples de autorização para ser implementado no WS.

Abraços!


Olá, você já postou algum material sobre OAuth?

Att.


18 Set 2013, 23:04
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 3 [+PgSQL+DAO+Business+Fact
joaop escreveu:
antunes escreveu:
Goncalves1 escreveu:
Boa tarde Antunes fiz webService seguindo seu exemplo mais utilizando mysql
Queria saber se a alguma forma de por senha para acessa o WS


O que vc pode fazer é implementar algum tipo de autorização, por exemplo o OAuth.

O que ele faz é passar um token para o usuário do seu WS que deverá enviar esse token no header de todas as requisições enviadas ao WS sob a tag "Authorization".

Ou criar a sua própria forma de autenticação/autorização.

Ainda não tive tempo pra terminar, mas eu estou pra postar um modelo simples de autorização para ser implementado no WS.

Abraços!


Olá, você já postou algum material sobre OAuth?

Att.



Não postei!!

_________________
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 Set 2013, 01:07
Perfil WWW
What is Android?
What is Android?

Data de registro: 18 Set 2013, 23:02
Mensagens: 6
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
antunes escreveu:
joaop escreveu:
antunes escreveu:
Goncalves1 escreveu:
Boa tarde Antunes fiz webService seguindo seu exemplo mais utilizando mysql
Queria saber se a alguma forma de por senha para acessa o WS


O que vc pode fazer é implementar algum tipo de autorização, por exemplo o OAuth.

O que ele faz é passar um token para o usuário do seu WS que deverá enviar esse token no header de todas as requisições enviadas ao WS sob a tag "Authorization".

Ou criar a sua própria forma de autenticação/autorização.

Ainda não tive tempo pra terminar, mas eu estou pra postar um modelo simples de autorização para ser implementado no WS.

Abraços!


Olá, você já postou algum material sobre OAuth?

Att.



Não postei!!


Alguém teria algum bom no estilo deste tópico para indicar?

Att.


01 Out 2013, 20:56
Perfil
What is Android?
What is Android?

Data de registro: 15 Out 2013, 20:37
Mensagens: 3
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Primeiramente parabéns antunes pelos artigos, estou entrando nessa area de java e android agora, e ele me ajudou bastante.

Fiz todos os procedimentos, mais mudei a conexão para o MySql, ele busca o ID, Delete e Insere normalmente, mais na hora de buscar todos ele da erro, e para de executar o app (to executando direto no celular), segue o log abaixo, acho que é algum erro besta (10-16 14:09:11.054: E/ArrayAdapter(28280): You must supply a resource ID for a TextView), mais como não tenho muita expeciencia em java ja complica para mim kkkk


Citação:
10-16 14:09:10.914: I/get(28280): Result from post JsonPost : 200 : [{"id":1,"nome":"teste 1","cpf":"1234324","endereco":"teste 1x"},{"id":5,"nome":"João da Silva","cpf":"000333444-01","endereco":"Rua do lado, 33"}]
10-16 14:09:11.054: E/ArrayAdapter(28280): You must supply a resource ID for a TextView
10-16 14:09:11.054: W/dalvikvm(28280): threadid=1: thread exiting with uncaught exception (group=0x40cea450)
10-16 14:09:11.074: E/AndroidRuntime(28280): FATAL EXCEPTION: main
10-16 14:09:11.074: E/AndroidRuntime(28280): java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:386)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.widget.AbsListView.obtainView(AbsListView.java:2271)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.widget.ListView.makeAndAddView(ListView.java:1769)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.widget.ListView.fillDown(ListView.java:672)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.widget.ListView.fillFromTop(ListView.java:733)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.widget.ListView.layoutChildren(ListView.java:1622)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.widget.AbsListView.onLayout(AbsListView.java:2106)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.view.View.layout(View.java:13923)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.view.ViewGroup.layout(ViewGroup.java:4472)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.widget.FrameLayout.onLayout(FrameLayout.java:460)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.view.View.layout(View.java:13923)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.view.ViewGroup.layout(ViewGroup.java:4472)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1687)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1545)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.widget.LinearLayout.onLayout(LinearLayout.java:1450)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.view.View.layout(View.java:13923)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.view.ViewGroup.layout(ViewGroup.java:4472)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.widget.FrameLayout.onLayout(FrameLayout.java:460)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.view.View.layout(View.java:13923)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.view.ViewGroup.layout(ViewGroup.java:4472)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1868)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1689)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4217)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.view.Choreographer.doCallbacks(Choreographer.java:555)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.view.Choreographer.doFrame(Choreographer.java:525)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.os.Handler.handleCallback(Handler.java:615)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.os.Handler.dispatchMessage(Handler.java:92)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.os.Looper.loop(Looper.java:137)
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.app.ActivityThread.main(ActivityThread.java:4800)
10-16 14:09:11.074: E/AndroidRuntime(28280): at java.lang.reflect.Method.invokeNative(Native Method)
10-16 14:09:11.074: E/AndroidRuntime(28280): at java.lang.reflect.Method.invoke(Method.java:511)
10-16 14:09:11.074: E/AndroidRuntime(28280): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798)
10-16 14:09:11.074: E/AndroidRuntime(28280): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
10-16 14:09:11.074: E/AndroidRuntime(28280): at dalvik.system.NativeStart.main(Native Method)
10-16 14:09:11.074: E/AndroidRuntime(28280): Caused by: java.lang.ClassCastException: android.widget.RelativeLayout cannot be cast to android.widget.TextView
10-16 14:09:11.074: E/AndroidRuntime(28280): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:379)



Outra coisa que percebi, quando vai pesquisar um ou deletar por exemplo, ele da uma travadinha de uns 4 seg. o que pode ser feito para melhorar?


16 Out 2013, 16:16
Perfil
Google employee
Google employee

Data de registro: 28 Jun 2012, 19:13
Mensagens: 1308
Localização: Itaperuna-RJ
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Jeffgc, o primeiro erro é pq tu tem algum TextView no seu adapter sem ID, pode olhar que quando você vai atualizar seu adapter... você referencia com algo parecido com...
R.id.textViewValorDespesa
e no seu xml não tem o id.

Sua segunda dúvida eu faço as pesquisas em thread separada, então a não ser que seja milhares e milhares de dados, vai de boa. Abraço.

_________________
Powell


16 Out 2013, 23:08
Perfil
What is Android?
What is Android?

Data de registro: 15 Out 2013, 20:37
Mensagens: 3
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Obrigado raphaelframos, preciso fazer uma sincronização com o SQLite, por acaso você sabe algum artigo relacionado?


17 Out 2013, 01:33
Perfil
Google employee
Google employee

Data de registro: 28 Jun 2012, 19:13
Mensagens: 1308
Localização: Itaperuna-RJ
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Não sei... você está em dúvidas na parte do WS ou na atualização do banco?

_________________
Powell


17 Out 2013, 18:29
Perfil
What is Android?
What is Android?

Data de registro: 15 Out 2013, 20:37
Mensagens: 3
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
raphaelframos escreveu:
Não sei... você está em dúvidas na parte do WS ou na atualização do banco?


A parte do WS conectando com o MySql está tudo certo, o que eu queria agora é que ele sincronizasse os dados do MySql no SQLite e visse versa. para poder usar a aplicação offline tambem


17 Out 2013, 18:32
Perfil
Google employee
Google employee

Data de registro: 28 Jun 2012, 19:13
Mensagens: 1308
Localização: Itaperuna-RJ
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Eu uso o retorno do gson, formato as tabelas que precisam ser formatadas e insiro de novo.

_________________
Powell


18 Out 2013, 10:30
Perfil
Android application
Android application

Data de registro: 13 Ago 2012, 12:29
Mensagens: 68
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Parabéns pelo artigo está me ajudando bastante mas estou com o seguinte erro quando quer buscar somente um registro através da seguinte url:
Metodo no Adroid:

private static final String URL = "http://192.168.2.107:8085/LabCertoWs/rest/cargas/";


public Carga getCarga(int id) throws Exception {

         String[] resposta = new WebServiceCliente().get(URL + id);
         
         if (resposta[0].equals("200")) {
             Gson gson = new Gson();
             Carga carga = gson.fromJson(resposta[1], Carga.class);
             return carga;
         } else {
             throw new Exception(resposta[1]);
         }
}
 


Metodo no meu WS:

   
@GET  
    @Path("{Carga}")  
    @Produces("application/json")
    public Carga getIdCarga(@PathParam("Carga") int id){       
        Carga carga =  cargaRepository.find(id);
         
         if(carga == null)
             throw new NoContentException("Carga não encontrado!");
         
         return carga;
}
 


Meu classe eu utilizo o hibernate para persistencia:

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
@Entity
@Table(name="viewRPT_Carga")
public class Carga implements Serializable{
   
    /**
     *
     */

    private static final long serialVersionUID = 1L;
    @Id
    private Integer CodCarga;
    private Integer Ano;
    private Integer Mes;
    private Integer VolInformado;
    private String Situacao;
   
    public Carga() {
        // TODO Auto-generated constructor stub
    }

    public Integer getCodCarga() {
        return CodCarga;
    }

    public void setCodCarga(Integer codCarga) {
        CodCarga = codCarga;
    }

    public Integer getAno() {
        return Ano;
    }

    public void setAno(Integer ano) {
        Ano = ano;
    }

    public Integer getMes() {
        return Mes;
    }

    public void setMes(Integer mes) {
        Mes = mes;
    }

    public Integer getVolInformado() {
        return VolInformado;
    }

    public void setVolInformado(Integer volInformado) {
        VolInformado = volInformado;
    }

    public String getSituacao() {
        return Situacao;
    }

    public void setSituacao(String situacao) {
        Situacao = situacao;
    }
   
   

}

 


E tenho o seguinte erro quando tento pegar esse registro as bibliotecas adicionadas estão em anexo, o estranho que quando eu quero a lista funciona perfeitamente, somente esse método que apresenta o erro.



02/12/2013 15:04:50 com.sun.jersey.spi.container.ContainerResponse logException
GRAVE: Mapped exception to response: 500 (Internal Server Error)
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class model.Carga_$$_javassist_1, and Java type class model.Carga, and MIME media type application/json was not found
    at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:285)
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1479)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)
    at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at factory.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:32)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: com.sun.jersey.api.MessageException: A message body writer for Java class model.Carga_$$_javassist_1, and Java type class model.Carga, and MIME media type application/json was not found
    ... 27 more

 



Obrigado desde já


02 Dez 2013, 16:23
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 3 [+PgSQL+DAO+Business+Fact
Qual a versão do jersey que vc está usando??

_________________
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 Dez 2013, 15:14
Perfil WWW
Android application
Android application

Data de registro: 13 Ago 2012, 12:29
Mensagens: 68
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Estou usando a 1.11 as mesmas que tem no projeto em anexo no artigo.
Obrigado desde já coloquei a imagem em anexo.


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


03 Dez 2013, 17:16
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 3 [+PgSQL+DAO+Business+Fact
Rapaz,

Eu nunca tive esse erro, mas uma coisa que eu achei estranho no seu trecho de código é que eu senti falta de uma "/" no seu path.

@Path("{Carga}")


Ficaria assim:

@Path("/{Carga}")


Vc tentou dar uma "googleada"?? O que achou?

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 Dez 2013, 01:23
Perfil WWW
Android application
Android application

Data de registro: 13 Ago 2012, 12:29
Mensagens: 68
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Mesmo colocando


@Path("/{Carga}")  
 


Eu pesquisei diversas vezes sempre falam da falta da tag: @XmlRootElement

@Entity
@Table(name="viewRPT_Carga")
@XmlRootElement
public class Carga implements Serializable{
 


ou como você apresentou as questões das libs.
Vou testar criar uma outra classe CargaRest alguma coisa assim, somente com a tag: @XmlRootElement
E buscar o dado que eu quero e jogar nela.
Obrigado pela ajuda


04 Dez 2013, 11:09
Perfil
Android application
Android application

Data de registro: 13 Ago 2012, 12:29
Mensagens: 68
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
O que eu fiz funcionou não sei se é a melhor maneira mas apresentou o resultado no json:
Nova Classe Java

import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class ListaCarga {   
    private Integer CodCarga;
    private Integer Ano;
    private Integer Mes;
    private Integer VolInformado;
    private String Situacao;   
    public ListaCarga() {
        // TODO Auto-generated constructor stub
    }
    //get set
 


Já no classe CargaResource ficou assim:

@GET  
    @Path("/{Carga}")  
    @Produces("application/json")
    public ListaCarga getIdCarga(@PathParam("Carga") int id){      
        ListaCarga carga =  getCarga(id);       
         if(carga == null)
             throw new NoContentException("Carga não encontrada!");         
         return carga;
    }
//No casso eu busco através do hibernate a carga passada pelo metodo find do meu repository e jogo para a nova classe ListaCarga e retorno ela.
private ListaCarga getCarga(int id){
        Carga carga = cargaRepository.find(id);
        if(carga !=null){
        ListaCarga novaCarga = new ListaCarga();
        novaCarga.setAno(carga.getAno());
        novaCarga.setMes(carga.getMes());
        novaCarga.setSituacao(carga.getSituacao());
        novaCarga.setVolInformado(carga.getVolInformado());
            return novaCarga;
        }
        return null;
       
    }
 


O json gerado:


{"ano":"2011","mes":"10","situacao":"Analise","volInformado":"25500"}
 


Agora vou testar no android para ver se vai da certo.
Muito obrigado.


04 Dez 2013, 11:17
Perfil
What is Android?
What is Android?

Data de registro: 17 Jan 2014, 18:39
Mensagens: 4
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Boa noite Antunes! Primeiramente, grande tutorial e de grande ajuda!

Porém estou com um problema. Segui o tutorial fazendo as modificações para o meu caso, porém não estou conseguindo inserir no banco, estou usando o jelastic.com.br que alguém deixou aqui nas perguntas e é muito útil. Consigo retornar as coisas dele, acesso por browser e etc para testar, mas na hora de incluir, estou recebendo o erro 415. Pelo o que procurei, o 415 é erro de mídia não suportada.
Log do Tomcat:
Feb 18, 2014 6:43:27 AM com.sun.jersey.spi.container.ContainerRequest getEntity
SEVERE: A message body reader for Java class br.com.petfinder.models.Animal, and Java type class br.com.petfinder.models.Animal, and MIME media type application/json was not found.
The registered message body readers compatible with the MIME media type are:
application/json ->
  com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$App
*/* ->
  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



AnimalDAO:
public int inserir(Animal animal){
        Connection conn = null;
        conn = getConnection();
        int sucesso = 0;
        PreparedStatement stmt = null;
       
        try{
            stmt = conn.prepareStatement("INSERT INTO " +
                    "ANIMAL (ESPECIE, RACA, PORTE, GENERO, COR, DESCRICAO, FOTO) VALUES (?,?,?,?,?,?,?)");
            stmt.setInt(1, animal.getEspecie());
            stmt.setInt(2, animal.getRaca());
            stmt.setInt(3, animal.getPorte());
            stmt.setInt(4, animal.getGenero());
            stmt.setInt(5, animal.getCor());
            stmt.setString(6, animal.getDescricao());
            stmt.setBlob(7, animal.getFoto());
            sucesso = stmt.executeUpdate();
           
            if (sucesso > 0){
                System.out.println("ANIMAL INSERIDO!");
            }
        } catch (SQLException e){
                e.printStackTrace();
                System.out.println("ERRO AO INSERIR ANIMAL!");
        } finally{
            closeConnection(conn, stmt);
        }
        return sucesso;
    }


AnimalREST:
public String inserirAnimal(Animal animal) throws Exception{
        Gson gson = new Gson();
        String animalJSON = gson.toJson(animal);
        String[] resposta = new WebServiceCliente().post(URL_WS + "inserir", animalJSON);
       
        if (resposta[0].equals("200")){
            return resposta[1];
        } else{
            throw new Exception(resposta[1]);
        }
    }


Log:

02-18 01:12:25.986: D/post(23161): Result from post JsonPost: 415 :
02-18 01:11:36.506: W/System.err(23161): java.lang.Exception:
02-18 01:11:36.516: W/System.err(23161):    at com.example.petfinder_2.webservice.AnimalREST.inserirAnimal(AnimalREST.java:53)
02-18 01:11:36.516: W/System.err(23161):    at com.example.petfinder_2.Cadastrar$1.onClick(Cadastrar.java:300)
02-18 01:11:36.526: W/System.err(23161):    at android.view.View.performClick(View.java:4101)
02-18 01:11:36.526: W/System.err(23161):    at android.view.View$PerformClick.run(View.java:17082)
02-18 01:11:36.526: W/System.err(23161):    at android.os.Handler.handleCallback(Handler.java:615)
02-18 01:11:36.536: W/System.err(23161):    at android.os.Handler.dispatchMessage(Handler.java:92)
02-18 01:11:36.536: W/System.err(23161):    at android.os.Looper.loop(Looper.java:137)
02-18 01:11:36.536: W/System.err(23161):    at android.app.ActivityThread.main(ActivityThread.java:4954)
02-18 01:11:36.536: W/System.err(23161):    at java.lang.reflect.Method.invokeNative(Native Method)
02-18 01:11:36.546: W/System.err(23161):    at java.lang.reflect.Method.invoke(Method.java:511)
02-18 01:11:36.546: W/System.err(23161):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798)
02-18 01:11:36.546: W/System.err(23161):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
02-18 01:11:36.556: W/System.err(23161):    at dalvik.system.NativeStart.main(Native Method)
 


Tem ideia do que pode estar causando isso?

Obrigado!


18 Fev 2014, 03:13
Perfil
What is Android?
What is Android?

Data de registro: 17 Jan 2014, 18:39
Mensagens: 4
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Achei que minha classe Animal estava muito complicada de debugar e fui testar com uma classe mais simples, Usuario:
public class Usuario implements Serializable{

    private int id;
    private String login;
    private String senha;
//getters and setters
 


Só que quando eu envio ela pro webservice, ele chega com login null no servidor. A senha chega normal, mas o login fica null. Log do Toncat:
Feb 20, 2014 7:51:33 AM com.sun.jersey.spi.container.ContainerRequest getEntity
SEVERE: A message body reader for Java class br.com.petfinder.models.Animal, and Java type class br.com.petfinder.models.Animal, and MIME media type application/json was not found.
The registered message body readers compatible with the MIME media type are:
application/json ->
  com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$App
*/* ->
  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

Feb 20, 2014 7:53:20 AM com.sun.jersey.spi.container.ContainerRequest getEntity
SEVERE: A message body reader for Java class br.com.petfinder.models.Animal, and Java type class br.com.petfinder.models.Animal, and MIME media type application/json was not found.
The registered message body readers compatible with the MIME media type are:
application/json ->
  com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$App
*/
* ->
  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

=== RESOURCE ===
Login:null
Senha:teste
=== BUSINESS ===
Login:null
Senha:teste
=== DAO ===
Login:null
Senha:teste
org.postgresql.util.PSQLException: ERROR: null value in column "login" violates not-null constraint
  Detail: Failing row contains (11, null, null).
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2161)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1890)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:560)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:363)
    at br.com.petfinder.dao.UsuarioDAO.inserir(UsuarioDAO.java:55)
    at br.com.petfinder.models.UsuarioBusiness.inserir(UsuarioBusiness.java:20)
    at br.com.petfinder.resources.UsuarioResource.inserirUsuario(UsuarioResource.java:67)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
    at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
    at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
    at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
    at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
    at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
    at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
    at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542)
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)
    at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:540)
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:715)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:724)
ERRO AO INSERIR USUARIO!


Inserção do Usuario
buscarBtn.setOnClickListener(new View.OnClickListener() {      
            @Override
            public void onClick(View v) {
                Usuario usuario = new Usuario();
                UsuarioREST usuarioREST = new UsuarioREST();
                usuario.setLogin("teste asd");
                usuario.setSenha("teste");
                System.out.println(usuario.getLogin());
                String resposta = "Não enviou";
                try{
                    resposta = usuarioREST.inserirUsuario(usuario);
                } catch (Exception e){
                    e.printStackTrace();       
                }
                System.out.println(resposta);
               
            }
        });


Dei "sysout" em todo o processo de envio do json e ele sempre devolve a mesma coisa:
02-20 02:55:50.561: I/System.out(8812): {"senha":"teste","login":"teste asd","id":0}
 


Alguma ideia do porque de estar recebendo null só no login no servidor?

Obrigado!


20 Fev 2014, 04: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 3 [+PgSQL+DAO+Business+Fact
Confere o seguinte:

1 - Colocou "@XmlRootElement" na sua entidade?
2 - Colocou o "@Produces("application/json")" e/ou "@Consumes("application/json")", dependendo se tem saída ou entrada de dados, no seu resource?

O outro erro "org.postgresql.util.PSQLException: ERROR: null value in column "login" violates not-null constraint" é que vc está tentando colocar null em uma lugar que não aceita 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??


20 Fev 2014, 18:36
Perfil WWW
What is Android?
What is Android?

Data de registro: 17 Jan 2014, 18:39
Mensagens: 4
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
antunes escreveu:
Confere o seguinte:

1 - Colocou "@XmlRootElement" na sua entidade?
2 - Colocou o "@Produces("application/json")" e/ou "@Consumes("application/json")", dependendo se tem saída ou entrada de dados, no seu resource?

O outro erro "org.postgresql.util.PSQLException: ERROR: null value in column "login" violates not-null constraint" é que vc está tentando colocar null em uma lugar que não aceita null.

Abraços!


1: Realmente tinha esquecido!
2: Sim, coloquei... mas acho que pode ser problema do XmlRoot que não estava na entidade.
@POST
     @Path("/inserir")
     @Produces("application/json")
     @Consumes("application/json")
     public String inserirAnimal(Animal animal) {
         return new AnimalBusiness().inserir(animal);
     }


3: Esse que é o problema. O login está chegando como no servidor e não deveria. Coloquei Sysout em todos os lugares por qual passava a string do json e sempre teinha dados no login. Mas quando chega no servidor, ele fica como null. Tanto que estou passando o login e a senha e a senha chega com o conteúdo certo.

Obrigado!


20 Fev 2014, 19:08
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 3 [+PgSQL+DAO+Business+Fact
Posta sua classe que controla o banco!

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 Fev 2014, 22:09
Perfil WWW
What is Android?
What is Android?

Data de registro: 17 Jan 2014, 18:39
Mensagens: 4
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
antunes escreveu:
Posta sua classe que controla o banco!

Abraços!


Obrigado pela ajuda Antunes. Faltava o @XmlRootElement mesmo, depois que coloquei ele nas classes, funcionou normal.

Outra dúvida:
Tenho 3 classes, sendo que o id de uma classe é chave estrangeira das outras duas. Como que eu faço para incluir o ID certo nas chaves estrangeiras?

Pensei em ao incluir, retornar o valor do id incluído com
SET NoCount ON;INSERT ...; SELECT scope_identity();SET NoCount OFF;"
mas não acho que seja o melhor jeito. Pensei também em passar os 3 jsons das classes, mas acho que não é possível incluir três Entitys, certo?

public String inserirAnimal(Animal animal, Anuncio anuncio, Localizacao localizacao) throws Exception{
        Gson gson = new Gson();
        String animalJSON = gson.toJson(animal);
        String anuncioJSON = gson.toJson(anuncio);
        String localizacaoJSON = gson.toJson(localizacao);
        String[] resposta = new WebServiceCliente().post(URL_WS + "inserir", animalJSON, anuncioJSON, localizacaoJSON);
       
        if (resposta[0].equals("200")){
            return resposta[1];
        } else{
            throw new Exception(resposta[1]);
        }
    }


public final String[] post(String url, String animalJson, String anuncioJson, String locJson){
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
            .permitAll().build();
        StrictMode.setThreadPolicy(policy);
        String[] result = new String[2];
        Log.e("Entrou", "Post");
       
        try{
            Log.e("Entrou", "Try");
            HttpPost httpPost = new HttpPost(new URI(url));
            httpPost.setHeader("Content-type", "application/json");
            Log.e("Entrou", "SetHeader");
            System.out.println(animalJson);
            System.out.println(anuncioJson);
            System.out.println(locJson);
            StringEntity sEntity = new StringEntity(animalJson, "UTF-8");
            StringEntity sEntity2 = new StringEntity(anuncioJson, "UTF-8");
            StringEntity sEntity3 = new StringEntity(locJson, "UTF-8");
            httpPost.setEntity(sEntity);
            httpPost.setEntity(sEntity2);
            httpPost.setEntity(sEntity3);
            Log.e("Entrou", "Entity");
            HttpResponse response;
            response = HttpClientSingleton.getHttpClientInstance().execute(httpPost);
            Log.e("Entrou", "Response");
            HttpEntity entity = response.getEntity();
            Log.e("Entrou", "Entity");
           
            if (entity != null){
                Log.e("Entrou", "If");
                result[0] = String.valueOf(response.getStatusLine().getStatusCode());
                InputStream instream = entity.getContent();
                result[1] = toString(instream);
                instream.close();
                Log.d("post", "Result from post JsonPost: " + result[0] + " : " + result[1]);
            }
        } catch (Exception e){
            Log.e("Entrou", "Catch");
            Log.e("NGVL", "Falha ao acessa o WebService Post", e);
            result[0] = "0";
            result[1] = "Falha da rede!";
        }
        return result;
    }


Obrigado!


23 Fev 2014, 23: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 3 [+PgSQL+DAO+Business+Fact
cryzon,

O ideal é que o seu objeto principal tenha os outros dois como atributo (dentro dele), assim o seu resource recebe apenas um objeto e vai inserir os 3.

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??


01 Mar 2014, 02:04
Perfil WWW
What is Android?
What is Android?

Data de registro: 21 Fev 2014, 20:26
Mensagens: 4
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Ola antunes, me salva!
tenho a seguinte exerçao
03-12 03:20:43.522: E/NGVL(563): android.os.NetworkOnMainThreadException
03-12 03:20:43.522: E/NGVL(563): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1084)
03-12 03:20:43.522: E/NGVL(563): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:74)
03-12 03:20:43.522: E/NGVL(563): at libcore.io.IoBridge.connectErrno(IoBridge.java:138)
03-12 03:20:43.522: E/NGVL(563): at libcore.io.IoBridge.connect(IoBridge.java:112)
03-12 03:20:43.522: E/NGVL(563): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
03-12 03:20:43.522: E/NGVL(563): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
03-12 03:20:43.522: E/NGVL(563): at java.net.Socket.connect(Socket.java:842)
03-12 03:20:43.522: E/NGVL(563): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
03-12 03:20:43.522: E/NGVL(563): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
03-12 03:20:43.522: E/NGVL(563): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
03-12 03:20:43.522: E/NGVL(563): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
03-12 03:20:43.522: E/NGVL(563): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
03-12 03:20:43.522: E/NGVL(563): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
03-12 03:20:43.522: E/NGVL(563): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
03-12 03:20:43.522: E/NGVL(563): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
03-12 03:20:43.522: E/NGVL(563): at com.projeto.myqueries.io.webservice.WebService.get(WebService.java:23)
03-12 03:20:43.522: E/NGVL(563): at com.projeto.myqueries.io.webservice.ClienteWS.get(ClienteWS.java:34)
03-12 03:20:43.522: E/NGVL(563): at com.projeto.myqueries.model.Facade.getUsuario(Facade.java:43)
03-12 03:20:43.522: E/NGVL(563): at com.projeto.myqueries.view.GUILogin.validarUsuario(GUILogin.java:108)
03-12 03:20:43.522: E/NGVL(563): at com.projeto.myqueries.view.GUILogin.access$8(GUILogin.java:107)
03-12 03:20:43.522: E/NGVL(563): at com.projeto.myqueries.view.GUILogin$3.onClick(GUILogin.java:89)
03-12 03:20:43.522: E/NGVL(563): at android.view.View.performClick(View.java:3480)
03-12 03:20:43.522: E/NGVL(563): at android.view.View$PerformClick.run(View.java:13983)
03-12 03:20:43.522: E/NGVL(563): at android.os.Handler.handleCallback(Handler.java:605)
03-12 03:20:43.522: E/NGVL(563): at android.os.Handler.dispatchMessage(Handler.java:92)
03-12 03:20:43.522: E/NGVL(563): at android.os.Looper.loop(Looper.java:137)
03-12 03:20:43.522: E/NGVL(563): at android.app.ActivityThread.main(ActivityThread.java:4340)
03-12 03:20:43.522: E/NGVL(563): at java.lang.reflect.Method.invokeNative(Native Method)
03-12 03:20:43.522: E/NGVL(563): at java.lang.reflect.Method.invoke(Method.java:511)
03-12 03:20:43.522: E/NGVL(563): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
03-12 03:20:43.522: E/NGVL(563): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-12 03:20:43.522: E/NGVL(563): at dalvik.system.NativeStart.main(Native Method)


isso acontece em versoes com api >10
acontece por conta que tento executar funçoes que possam congelar o app na trhead principal,
a galera fala que preciso criar outra thread toda vez que for consultar o webservice, porem nao sei como fazer =(
tem alguma dica? obrigado.


12 Mar 2014, 03:00
Perfil
What is Android?
What is Android?

Data de registro: 21 Fev 2014, 20:26
Mensagens: 4
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Ola antune, me salva!
Estou tendo a seguinte exerção:

03-12 03:20:43.522: E/NGVL(563): android.os.NetworkOnMainThreadException
03-12 03:20:43.522: E/NGVL(563): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1084)
03-12 03:20:43.522: E/NGVL(563): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:74)
03-12 03:20:43.522: E/NGVL(563): at libcore.io.IoBridge.connectErrno(IoBridge.java:138)
03-12 03:20:43.522: E/NGVL(563): at libcore.io.IoBridge.connect(IoBridge.java:112)
03-12 03:20:43.522: E/NGVL(563): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
03-12 03:20:43.522: E/NGVL(563): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
03-12 03:20:43.522: E/NGVL(563): at java.net.Socket.connect(Socket.java:842)
03-12 03:20:43.522: E/NGVL(563): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
03-12 03:20:43.522: E/NGVL(563): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
03-12 03:20:43.522: E/NGVL(563): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
03-12 03:20:43.522: E/NGVL(563): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
03-12 03:20:43.522: E/NGVL(563): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
03-12 03:20:43.522: E/NGVL(563): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
03-12 03:20:43.522: E/NGVL(563): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
03-12 03:20:43.522: E/NGVL(563): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
03-12 03:20:43.522: E/NGVL(563): at com.projeto.myqueries.io.webservice.WebService.get(WebService.java:23)
03-12 03:20:43.522: E/NGVL(563): at com.projeto.myqueries.io.webservice.ClienteWS.get(ClienteWS.java:34)
03-12 03:20:43.522: E/NGVL(563): at com.projeto.myqueries.model.Facade.getUsuario(Facade.java:43)
03-12 03:20:43.522: E/NGVL(563): at com.projeto.myqueries.view.GUILogin.validarUsuario(GUILogin.java:108)
03-12 03:20:43.522: E/NGVL(563): at com.projeto.myqueries.view.GUILogin.access$8(GUILogin.java:107)
03-12 03:20:43.522: E/NGVL(563): at com.projeto.myqueries.view.GUILogin$3.onClick(GUILogin.java:89)
03-12 03:20:43.522: E/NGVL(563): at android.view.View.performClick(View.java:3480)
03-12 03:20:43.522: E/NGVL(563): at android.view.View$PerformClick.run(View.java:13983)
03-12 03:20:43.522: E/NGVL(563): at android.os.Handler.handleCallback(Handler.java:605)
03-12 03:20:43.522: E/NGVL(563): at android.os.Handler.dispatchMessage(Handler.java:92)
03-12 03:20:43.522: E/NGVL(563): at android.os.Looper.loop(Looper.java:137)
03-12 03:20:43.522: E/NGVL(563): at android.app.ActivityThread.main(ActivityThread.java:4340)
03-12 03:20:43.522: E/NGVL(563): at java.lang.reflect.Method.invokeNative(Native Method)
03-12 03:20:43.522: E/NGVL(563): at java.lang.reflect.Method.invoke(Method.java:511)
03-12 03:20:43.522: E/NGVL(563): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
03-12 03:20:43.522: E/NGVL(563): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-12 03:20:43.522: E/NGVL(563): at dalvik.system.NativeStart.main(Native Method)

Isso ocorre porque não é boa prática colocar algum processo que pode ser demorado na thread principal (que é a que desenha a tela), ou seja, se o processo que pode ser longo, realmente torna-se longo, isso é um problema, pois estará com o restante da app congelada, pois a thread principal está ocupada fazendo o processo longo.

Cabe resaltar que essa exceção só acontece a partir da versão 3.0...


A soluçao seria a criaçao de threds para acessar o Webservice, porem nao sei como faze-las tem como voce me dar uma luz?
como criar as threads na classe necessaria?


12 Mar 2014, 03:10
Perfil
What is Android?
What is Android?

Data de registro: 21 Fev 2014, 20:26
Mensagens: 4
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Ola antunes,
primeiramente desculpa o post duplicado anteriomente,
conseguir resolver o problema do "networkOnMainThreadException".

da seguinte maneira:
Classe WebService
package com.projeto.myqueries.io.webservice;


public class WebService{

    public final String[] get(String url){  
        String [] resposta = {"0","Ocorreu uma falha no WS"};       
        try {
            WSGet getWS = new WSGet();         
            resposta = getWS.execute(url).get();           
        } catch (Exception e) {        
            return resposta;                       
        }
        return resposta;
    }   
               
   

    public final String[] post(String url, String json) {
        String [] resposta = {"0","Ocorreu uma falha no WS"};       
        try {
            WSPost post = new WSPost();        
            resposta = post.execute(url,json).get();           
        } catch (Exception e) {        
            return resposta;                       
        }
        return resposta;
    }
}
 


e dividi os metodos get e post em classes separadas e usando o AsyncTask para resolver o problema.
Classe WSGet
package com.projeto.myqueries.io.webservice;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;

import android.os.AsyncTask;
import android.util.Log;

public class WSGet  extends AsyncTask<String,Integer,String[]>{

    @Override
    protected String[] doInBackground(String... params) {
        String[] result = new String[2];
         HttpGet httpget = new HttpGet(params[0]);
         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 get Json : " + result[0]);
             }
         } catch (Exception e) {
             Log.e("NGVL", "Falha ao acessar Web service", e);
             result[0] = "0";
         }
         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());
    }
}
 


Classe WSPost
package com.projeto.myqueries.io.webservice;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;

import android.os.AsyncTask;
import android.util.Log;

public class WSPost extends AsyncTask<String,Integer,String[]> {

    @Override
    protected String[] doInBackground(String... params) {
        String[] result = new String[2];
         try {
             System.out.println(params[1]);
             HttpPost httpPost = new HttpPost(new URI(params[0]));
             httpPost.setHeader("Content-type", "application/json");
             StringEntity sEntity = new StringEntity(params[1], "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.d("post", "Result from post JsonPost : " + result[0] + " : " + result[1]);
             }

         } catch (Exception e) {
             Log.e("NGVL", "Falha ao acessar Web service", e);
             result[0] = "0";
             result[1] = "Falha na rede, verifique sua conexao";
         }
         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());
     }
}
 


Espero ajudar quem passar pelo mesmo problema, e parabens pelo suporte a galera voce é massa. /uu


12 Mar 2014, 06: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: Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+
JuniorGaldino escreveu:
Ola antunes,
primeiramente desculpa o post duplicado anteriomente,
conseguir resolver o problema do "networkOnMainThreadException".

da seguinte maneira:
Classe WebService
package com.projeto.myqueries.io.webservice;


public class WebService{

    public final String[] get(String url){  
        String [] resposta = {"0","Ocorreu uma falha no WS"};       
        try {
            WSGet getWS = new WSGet();         
            resposta = getWS.execute(url).get();           
        } catch (Exception e) {        
            return resposta;                       
        }
        return resposta;
    }   
               
   

    public final String[] post(String url, String json) {
        String [] resposta = {"0","Ocorreu uma falha no WS"};       
        try {
            WSPost post = new WSPost();        
            resposta = post.execute(url,json).get();           
        } catch (Exception e) {        
            return resposta;                       
        }
        return resposta;
    }
}
 


e dividi os metodos get e post em classes separadas e usando o AsyncTask para resolver o problema.
Classe WSGet
package com.projeto.myqueries.io.webservice;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;

import android.os.AsyncTask;
import android.util.Log;

public class WSGet  extends AsyncTask<String,Integer,String[]>{

    @Override
    protected String[] doInBackground(String... params) {
        String[] result = new String[2];
         HttpGet httpget = new HttpGet(params[0]);
         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 get Json : " + result[0]);
             }
         } catch (Exception e) {
             Log.e("NGVL", "Falha ao acessar Web service", e);
             result[0] = "0";
         }
         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());
    }
}
 


Classe WSPost
package com.projeto.myqueries.io.webservice;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;

import android.os.AsyncTask;
import android.util.Log;

public class WSPost extends AsyncTask<String,Integer,String[]> {

    @Override
    protected String[] doInBackground(String... params) {
        String[] result = new String[2];
         try {
             System.out.println(params[1]);
             HttpPost httpPost = new HttpPost(new URI(params[0]));
             httpPost.setHeader("Content-type", "application/json");
             StringEntity sEntity = new StringEntity(params[1], "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.d("post", "Result from post JsonPost : " + result[0] + " : " + result[1]);
             }

         } catch (Exception e) {
             Log.e("NGVL", "Falha ao acessar Web service", e);
             result[0] = "0";
             result[1] = "Falha na rede, verifique sua conexao";
         }
         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());
     }
}
 


Espero ajudar quem passar pelo mesmo problema, e parabens pelo suporte a galera voce é massa. /uu


JuniorGaldino,

A solução é essa mesmo, parabéns!

Ainda não tive tempo de atualizar esse artigo. Provavelmente vou atualizar usando uma lib que resolve todo esse problema pra gente sem muito esforço. Como o volley, por exemplo.

Abraços!


Enviado de meu XT1058 usando Tapatalk

_________________
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??


13 Mar 2014, 03:23
Perfil WWW
What is a Activity?
What is a Activity?

Data de registro: 29 Mai 2014, 18:24
Mensagens: 10
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Alguém saberia me informar como faço para retornar dados de duas tabelas seguindo este tutorial?

Ex: Eu possuo uma tebela clientes e outra com endereços. Preciso que o Json retorne o Cliente com o endereço.
O Codigo SQL retorna correto no banco, mas não estou conseguindo retornar no webservice.


15 Jun 2014, 19:58
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 3 [+PgSQL+DAO+Business+Fact
renilsonandrade escreveu:
Alguém saberia me informar como faço para retornar dados de duas tabelas seguindo este tutorial?

Ex: Eu possuo uma tebela clientes e outra com endereços. Preciso que o Json retorne o Cliente com o endereço.
O Codigo SQL retorna correto no banco, mas não estou conseguindo retornar no webservice.



Coloca o objeto endereço dentro do objeto cliente!

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 Jun 2014, 13:53
Perfil WWW
What is a Activity?
What is a Activity?

Data de registro: 29 Mai 2014, 18:24
Mensagens: 10
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
antunes escreveu:
renilsonandrade escreveu:
Alguém saberia me informar como faço para retornar dados de duas tabelas seguindo este tutorial?

Ex: Eu possuo uma tebela clientes e outra com endereços. Preciso que o Json retorne o Cliente com o endereço.
O Codigo SQL retorna correto no banco, mas não estou conseguindo retornar no webservice.



Coloca o objeto endereço dentro do objeto cliente!

Abraços!



Olá Antunes.
Eu estou concluindo meu curso superior, e estou desenvolvendo um apk usando essas condições. Porém como estou utilizando uma grade curricular antiga( sei que não é desculpa), não vi nada disso na faculdade, e estou aprendendo tudo sozinho, por fora.
Mas ainda tenho algumas dificuldades de sintaxe com a linguagem.
Se você pudesse exemplificar com algum exemplo em código, seria de grande ajuda.
Obrigado!


20 Jun 2014, 22:23
Perfil
What is a Activity?
What is a Activity?

Data de registro: 29 Mai 2014, 18:24
Mensagens: 10
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
antunes escreveu:
renilsonandrade escreveu:
Alguém saberia me informar como faço para retornar dados de duas tabelas seguindo este tutorial?

Ex: Eu possuo uma tebela clientes e outra com endereços. Preciso que o Json retorne o Cliente com o endereço.
O Codigo SQL retorna correto no banco, mas não estou conseguindo retornar no webservice.



Coloca o objeto endereço dentro do objeto cliente!

Abraços!


Seria algo parecido com isso?

while (resultSet.next()) {  
                Cliente= new Cliente();
                linhas.setID(resultSet.getInt("id"));
                linhas.setNome(resultSet.getString("nome"));
                Endereco endereco = new endereco();
                endereco.setRua(resultSet.getString("rua"));

            }


21 Jun 2014, 22:51
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 3 [+PgSQL+DAO+Business+Fact
renilsonandrade escreveu:
antunes escreveu:
renilsonandrade escreveu:
Alguém saberia me informar como faço para retornar dados de duas tabelas seguindo este tutorial?

Ex: Eu possuo uma tebela clientes e outra com endereços. Preciso que o Json retorne o Cliente com o endereço.
O Codigo SQL retorna correto no banco, mas não estou conseguindo retornar no webservice.



Coloca o objeto endereço dentro do objeto cliente!

Abraços!


Seria algo parecido com isso?

while (resultSet.next()) {  
                Cliente= new Cliente();
                linhas.setID(resultSet.getInt("id"));
                linhas.setNome(resultSet.getString("nome"));
                Endereco endereco = new endereco();
                endereco.setRua(resultSet.getString("rua"));

            }


É exatamente isso!! =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??


22 Jun 2014, 02:52
Perfil WWW
What is Android?
What is Android?

Data de registro: 07 Jul 2014, 10:21
Mensagens: 1
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Boa tarde!
Sou novo aqui no fórum, não sei se já tem algum tutorial sobre esse assunto, queria saber como faço para testar um metodo @POST direto no Web serviçe, se teria com ter alguma resposta do web service no navegador. Não sei se me expressei correto .
Desde já agradeço pela atenção.


07 Jul 2014, 15:22
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: Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+
Jauri escreveu:
Boa tarde!
Sou novo aqui no fórum, não sei se já tem algum tutorial sobre esse assunto, queria saber como faço para testar um metodo @POST direto no Web serviçe, se teria com ter alguma resposta do web service no navegador. Não sei se me expressei correto .
Desde já agradeço pela atenção.

Busca sobre postman.

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 Jul 2014, 17:48
Perfil WWW
What is Android?
What is Android?

Data de registro: 29 Dez 2014, 16:38
Mensagens: 1
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Gostaria de saber, se eu fizer exatamente mais com o SQL Server também funciona?


29 Dez 2014, 16:41
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 3 [+PgSQL+DAO+Business+Fact
gomesystems escreveu:
Gostaria de saber, se eu fizer exatamente mais com o SQL Server também funciona?


Funciona sim, mas tem que mudar o driver de conexão com o banco!

_________________
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 Jan 2015, 12:13
Perfil WWW
Android application
Android application

Data de registro: 11 Abr 2014, 16:18
Mensagens: 60
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Antunes boa tarde, primeira mente obrigado pelos tutorias , estão me ajudando muito . Estou seguindo seus tutorias para desenvolver uma aplicação comercial,
porém quando tento usar a função de inserir @POST está me retornando um erro:


HTTP Status 405 - Method Not Allowed

--------------------------------------------------------------------------------

type Status report

message Method Not Allowed

description The specified HTTP method is not allowed for the requested resource.

sabe me dizer como resolvo isso ?


20 Mar 2015, 15:22
Perfil
Android application
Android application

Data de registro: 14 Set 2013, 11:39
Mensagens: 84
Localização: Goiatuba/GO
Mensagem Re: [Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Fact
Olá boa tarde Antunes,

Primeiramente gostaria de parabenizar não só a você como a todos do fórum, hoje pra mim é melhor que há sobre android. Já resolvi muitas questões aqui e sempre que possível passo para dar uma mão no que consigo.
Mas gostaria de saber se você ou alguém já passou pela mesma situação.
Eu tenho o WS funcionando, até hoje não tinha a necessidade de estar fazendo um crud completo, tendo em vista que só utilizava para consumir de depois fazia a descarga via arquivo. Agora não foi necessário de implementar um CRUD completo, já está em funcionamento normal utilizando a Wi-FI, porém quando vou utilizar a 3G (que não é 3G nem aqui e nem na china), apresenta geralmente 2 tipos de erros que são SocketTimeoutException ou ConnectionTimeoutException. Eu lhe pergunto já passou por tal situação ?

Obrigado


Esse
07-16 12:35:25.070: E/NGVL(9943): org.apache.http.conn.ConnectTimeoutException: Connect to /XXX.XXX.XXX.XXX:8080 timed out
07-16 12:35:25.070: E/NGVL(9943):   at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121)
07-16 12:35:25.070: E/NGVL(9943):   at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
07-16 12:35:25.070: E/NGVL(9943):   at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
07-16 12:35:25.070: E/NGVL(9943):   at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
07-16 12:35:25.070: E/NGVL(9943):   at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
07-16 12:35:25.070: E/NGVL(9943):   at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
07-16 12:35:25.070: E/NGVL(9943):   at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
07-16 12:35:25.070: E/NGVL(9943):   at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
07-16 12:35:25.070: E/NGVL(9943):   at com.example.testevolley.WebServiceCliente.post(WebServiceCliente.java:53)
07-16 12:35:25.070: E/NGVL(9943):   at com.example.testevolley.MainActivity.inserirPonto(MainActivity.java:451)
07-16 12:35:25.070: E/NGVL(9943):   at com.example.testevolley.MainActivity$2$1.run(MainActivity.java:120)
07-16 12:35:25.070: E/NGVL(9943):   at java.lang.Thread.run(Thread.java:841)
07-16 12:35:25.076: E/Erro ao inserir(9943): Falha de rede!
 


ou

07-16 12:42:50.735: E/NGVL(16974): java.net.SocketTimeoutException
07-16 12:42:50.735: E/NGVL(16974):  at java.net.PlainSocketImpl.read(PlainSocketImpl.java:491)
07-16 12:42:50.735: E/NGVL(16974):  at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46)
07-16 12:42:50.735: E/NGVL(16974):  at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:240)
07-16 12:42:50.735: E/NGVL(16974):  at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:103)
07-16 12:42:50.735: E/NGVL(16974):  at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:191)
07-16 12:42:50.735: E/NGVL(16974):  at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:82)
07-16 12:42:50.735: E/NGVL(16974):  at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174)
07-16 12:42:50.735: E/NGVL(16974):  at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:180)
07-16 12:42:50.735: E/NGVL(16974):  at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235)
07-16 12:42:50.735: E/NGVL(16974):  at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259)
07-16 12:42:50.735: E/NGVL(16974):  at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279)
07-16 12:42:50.735: E/NGVL(16974):  at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)
07-16 12:42:50.735: E/NGVL(16974):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:428)
07-16 12:42:50.735: E/NGVL(16974):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
07-16 12:42:50.735: E/NGVL(16974):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
07-16 12:42:50.735: E/NGVL(16974):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
07-16 12:42:50.735: E/NGVL(16974):  at com.example.testevolley.WebServiceCliente.post(WebServiceCliente.java:53)
07-16 12:42:50.735: E/NGVL(16974):  at com.example.testevolley.MainActivity.inserirPonto(MainActivity.java:451)
07-16 12:42:50.735: E/NGVL(16974):  at com.example.testevolley.MainActivity$2$1.run(MainActivity.java:120)
07-16 12:42:50.735: E/NGVL(16974):  at java.lang.Thread.run(Thread.java:841)
07-16 12:42:50.743: E/Erro ao inserir(16974): Falha de rede!
 


16 Jul 2015, 14:49
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 140 Mensagens ]  Ir para a página Anterior  1, 2, 3

Quem está online

Usuários vendo este fórum: adautox, ademir.carvalhojr, AdrianoMM, akaytatsu, alexandreufcg, alineri, alylson, Aparec, bbourbon, BornSlip, bozzano, btminzon, car.demarco, Carla Luz, carlos rodrigues, Chassot, Chefe Nass, chunga, cleber, cleberkct, cosmotheoro, Crazy_Droid, Cynthia, cyzko, dallari, danielbfranco, danilosv, dannieltec, Darth Vader, Dassi, debal, dfreitas, Diego, Diego Rufino, diegorrborges, diemesleno, dirceuconte, DroidBot, Dudi_FC, eduardo.ali, Eliezer Reis, emersonbarros, Eneias, fcoroa, ffardo, Flávio Robertgo, Francisco_Geraldo, gapler, gphonemania, Gui Pereira, GuilhermeZampieri, guto.pro, Henrique Ferraz, icarodavi, ICCrawler - ICjobs, interservic, iuri_freire, j-menezes, jacard, jackdaniel, Jaison, JAndroid, jhonguitar, jlucasps, jonasminas, Jorge Machin, julianafsa, Juniorvs, kennedyximenes, Knut, loferreira, lucastgomes, Luna, madeinnordeste, maurofjr, maurosilva, Mayara Trevisol, Meticore, mlemos, mmiottobarbosa, Mvitor, neimarguerra, nina.rm, nino, nq6, oliverlessa, onedroid, paulo.esantos, pchofard, peterson.bah, phfmendes, pingumanbr, rdchaves, rerp7, ricdigital, rixargolo, robertofonte, romuloigor, ronanPlus, ruizsa, schiroky, sergio, sidnei.gs, Silvio Vaz, srmoreira, suportecr, tChAnDy, thiagotomais, thiaguim, tiagocordeiro, tirloni, tnarnold, Topeca, waideman, woyzeck, YaCy 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:

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi