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



Responder Tópico  [ 160 Mensagens ]  Ir para a página Anterior  1, 2, 3, 4  Próximo
 [Artigo] Web Service RESTful [+Java+JSON+Code] 
Autor Mensagem
What is Android?
What is Android?

Data de registro: 12 Nov 2012, 18:34
Mensagens: 3
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Olá.

O meu código está idêntico ao do tutorial mas não rodou.
No momento em que eu testo a URL http://localhost:8080/WebServiceRest1/cliente/buscarTodos no Poster me dá essa resposta:

Response:
status: 500 Internal Server Error
Date: Mon, 12 Nov 2012 20:28:53 GMT
Connection: close
Content-Length: 1039
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8

<html><head><title>Apache Tomcat/7.0.32 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - Internal Server Error</h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u>Internal Server Error</u></p><p><b>description</b> <u>The server encountered an internal error that prevented it from fulfilling this request.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/7.0.32</h3></body></html>
 


No servidor Tomcat:

Nov 12, 2012 5:28:53 PM com.sun.jersey.spi.container.ContainerResponse logException
SEVERE: Mapped exception to response: 500 (Internal Server Error)
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class java.util.ArrayList, and Java type java.util.ArrayList<br.com.droid.model.Cliente>, 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:1448)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1360)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1350)
    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 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.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
Caused by: com.sun.jersey.api.MessageException: A message body writer for Java class java.util.ArrayList, and Java type java.util.ArrayList<br.com.droid.model.Cliente>, and MIME media type application/json was not found
    ... 24 more
 


O que há de errado?


12 Nov 2012, 18:38
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 [+Java+JSON+Code]
Qual a versão do jersey que vc está usando?

Como vc está fazendo a requisição? Foi GET? Colocou alguma coisa no header?

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


12 Nov 2012, 22:15
Perfil WWW
What is Android?
What is Android?

Data de registro: 12 Nov 2012, 18:34
Mensagens: 3
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Estou utilizando:

SO: Ubuntu 12.04 LTS 64 bits
Eclipse: Indigo 3.7.2
Java instalado: openjdk 1.7.0-09
Tomcat: 7.0.32

Libs
Jersey: 1.15
Gson: 2.2.2

De acordo com a figura em anexo, fiz a requisição por GET utilizando o plugin do Poster no Chrome.

Grato.


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


12 Nov 2012, 23:31
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 [+Java+JSON+Code]
Acredito que o seu problema seja o mesmo desse amigo aqui!!

viewtopic.php?f=7&t=17465&p=149309&hilit=jersey+1.11#p149309

No exemplo, eu usei a versão 1.11 do jersey e vc está usando a versão 1.15.

A dica que eu dei pra ele será a mesma que eu darei a vc: Sempre que vc for seguir um tutorial, use o mesmo ambiente que o cara que fez o tutorial usou, pelo menos até vc entender como funciona e depois mude o que vc quiser.

Outra coisa importante é sempre prestar atenção em mudança de versão das API's usadas no projeto. Antes de mudar, procure ler sobre as mudanças que aconteceram entre as versões. Da 1.11 para a 1.15 deve ter mudado bastante coisa!!

Uma das 3 formas que eu cito no link deve te ajudar a resolver o problema.

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


13 Nov 2012, 00:40
Perfil WWW
What is Android?
What is Android?

Data de registro: 12 Nov 2012, 18:34
Mensagens: 3
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Antunes,

Segui suas dicas e deu certo.

Consegui encontrar as bibliotecas do jersey 1.11 (http://repo1.maven.org/maven2/com/sun/j ... e-1.11.jar) e substituí os jars "jersey-core", "jersey-server", "jersey-servlet" da versão 1.15 pelo jar "jersey-bundle-1.11" baixado da url acima.

As outras bibliotecas, mantive da versão 1.15.

Obrigado, abraço. Agora é testar o "consume" no Android.


13 Nov 2012, 12:39
Perfil
Anatomy of an App
Anatomy of an App
Avatar de usuário

Data de registro: 30 Mai 2012, 19:15
Mensagens: 171
Localização: Inubia Paulista - Sp
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Anexo:
Sem título.jpg


Galera perdoe a minha falta de conhecimento, to mexendo com web service, "aprendendo" e está dando esse ai, como na figura, alguém pode me ajudar?


as classes :

package br.jeferson;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("/helloworld")
public class Hellow
{

    @GET
    @Produces("text/plain")
    public String showHelloWorld()
    {
     return "Olá mundo!";  
    }
}



<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>WebServiceREST</display-name>
  <servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <init-param>
    <param-name>fork</param-name>
    <param-value>br.jeferson</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>


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

_________________
- Jeferson Carlos - Desenvolvimento Android
Graduado em Ciência da Computação - 2012

msn: jeferson.carlos@hotmail.com
Skype: JefersonCarlos_


28 Nov 2012, 11: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 [+Java+JSON+Code]
Tentou colocar o mesmo web.xml que está nesse artigo??

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


28 Nov 2012, 15:15
Perfil WWW
Anatomy of an App
Anatomy of an App
Avatar de usuário

Data de registro: 30 Mai 2012, 19:15
Mensagens: 171
Localização: Inubia Paulista - Sp
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
sim sim , se eu colocar igualzinho ele fica assim:



[img]
Anexo:
Sem%20título.jpg
[/img]


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

_________________
- Jeferson Carlos - Desenvolvimento Android
Graduado em Ciência da Computação - 2012

msn: jeferson.carlos@hotmail.com
Skype: JefersonCarlos_


28 Nov 2012, 16:09
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 [+Java+JSON+Code]
Tá, não precisa ser exatamente igual.

Mude essa linha e coloque o pacote onde estão os seus resources!!

<param-value>br.com.droid.resources</param-value>


Uma dica que eu dei para o amigo acima, e que foi dada a outro antes dele, serve para vc também!!

antunes escreveu:
A dica que eu dei pra ele será a mesma que eu darei a vc: Sempre que vc for seguir um tutorial, use o mesmo ambiente que o cara que fez o tutorial usou, pelo menos até vc entender como funciona e depois mude o que vc quiser.


Tente reproduzir exatamente o que o tutorial sugere e depois modifique o que vc precisa. Assim vai ficar mais fácil pra vc e não terá tantos problemas, já que vc pode usar o método de tentativa e erro. Deu erro, volta o que tinha feito antes.

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


28 Nov 2012, 20:33
Perfil WWW
What is a Activity?
What is a Activity?

Data de registro: 21 Jun 2012, 16:18
Mensagens: 18
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Será que alguém consegue me ajudar, não sei o que está acontecendo, segui certinho o tutorial, já li vários post com problemas parecidos que conseguiram solucionar, mas eu infelizmente não consegui hehe.
Bom vamos la, meu WS está retornando um json com uma lista de objetos "SaldoEstoqueVolante" e criei um método para receber essa lista. Segue:

public static List<SaldoEstoqueVolante> getListaSaldoEstoqueVolante(Map params) {

        String resposta = Http.doPost(URL, params);
       
        if (resposta != null) {
            Gson gson = new Gson();
            ArrayList<SaldoEstoqueVolante> listaSaldoEstoque = new ArrayList<SaldoEstoqueVolante>();
            JsonParser parser = new JsonParser();
            JsonArray array = parser.parse(resposta).getAsJsonArray();
           
            for (int i = 0; i < array.size(); i++) {
                listaSaldoEstoque.add(gson.fromJson(array.get(i), SaldoEstoqueVolante.class));
            }
           
            return listaSaldoEstoque;
        } else {
            return null;
        }
       
    }


A "resposta" me retorna a seguinte String:
{"saldoEstoqueVolante":[{"codigo":"TEFE0096Z","material":"CHAVE TRIANGULO P/ ARMARIO","quantidade":"0.0","valor":"0.0","saldo":"0.0"},{"codigo":"TEFE0096Z","material":"CHAVE TRIANGULO P/ ARMARIO","quantidade":"0.0","valor":"0.0","saldo":"0.0"}]}

Ate ai tudo certo, o problema é quando vou converter para JsonArray, ai do o erro: java.lang.IllegalStateException: This is not a JSON Array.

Alguém pode me ajudar?


19 Dez 2012, 15:03
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 [+Java+JSON+Code]
Eu respondi essa dúvida aqui:

viewtopic.php?p=151706#p151706

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 Dez 2012, 16:06
Perfil WWW
What is a Activity?
What is a Activity?

Data de registro: 21 Jun 2012, 16:18
Mensagens: 18
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
antunes escreveu:


Puts, acho só não vi essa página hehe
Mas obrigado, resolveu aqui.
Valeu!!


19 Dez 2012, 17:20
Perfil
What is Android?
What is Android?

Data de registro: 11 Nov 2010, 00:11
Mensagens: 1
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Prezado Antunes, como passo o parametro no Poster para consultar o cliente por ID?


23 Jan 2013, 10:46
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 [+Java+JSON+Code]
leandromauricio escreveu:
Prezado Antunes, como passo o parametro no Poster para consultar o cliente por ID?


Na url mesmo!!

http://localhost:8080/nomeDoProjeto/cliente/idDoCliente

Exemplo de um cliente com id 1: http://localhost:8080/nomeDoProjeto/cliente/1

Tem isso tudo no projeto em anexo no tópico.

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 Jan 2013, 21:10
Perfil WWW
What is Android?
What is Android?

Data de registro: 25 Jan 2013, 12:32
Mensagens: 1
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Bom dia, Amigos!!!

To com o seguinte problema que já vi aqui no fórum, mas mesmo colocando a versão Jersey 1.11 o problema persiste.


Jan 25, 2013 11:33:11 AM com.sun.jersey.spi.container.ContainerResponse write
Grave: A message body writer for Java class java.util.ArrayList, and Java type java.util.ArrayList<br.com.droid.model.Cliente>, and MIME media type application/json was not found
Jan 25, 2013 11:33:11 AM com.sun.jersey.spi.container.ContainerResponse write
Grave: The registered message body writers 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.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.StreamingOutputProvider
com.sun.jersey.core.impl.provider.entity.SourceProvider$SourceWriter
com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General
com.sun.jersey.server.impl.template.ViewableMessageBodyWriter
com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General

Jan 25, 2013 11:33:11 AM 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 java.util.ArrayList, and Java type java.util.ArrayList<br.com.droid.model.Cliente>, 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:1437)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor.runWorker(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 java.util.ArrayList, and Java type java.util.ArrayList<br.com.droid.model.Cliente>, and MIME media type application/json was not found
... 25 more

Alguém poderia me ajudar?

Att.
Matheus


25 Jan 2013, 12: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 [+Java+JSON+Code]
Posta o código do "resource" e sua classe "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??


25 Jan 2013, 21:33
Perfil WWW
What is Android?
What is Android?

Data de registro: 25 Abr 2012, 04:40
Mensagens: 1
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Parabéns pelo texto. Excelente.


04 Fev 2013, 15:57
Perfil
What is Android?
What is Android?

Data de registro: 09 Fev 2013, 23:52
Mensagens: 6
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Olá Amigo sou novo neste forum e novo em programação android sera possivel vocÊ me enviar este projeto montado no eclipse para que eu configure com os dados meu notebook?
seria de uma enorme ajuda se isso for possivel.

muito obrigado


09 Fev 2013, 23:55
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 [+Java+JSON+Code]
MarcosArtes escreveu:
Olá Amigo sou novo neste forum e novo em programação android sera possivel vocÊ me enviar este projeto montado no eclipse para que eu configure com os dados meu notebook?
seria de uma enorme ajuda se isso for possivel.

muito obrigado


Marcos,

No final do meu primeiro post, nos três artigos, tem anexado os fontes do projeto exemplo feito para o artigo.

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


09 Fev 2013, 23:59
Perfil WWW
Widgets
Widgets

Data de registro: 13 Abr 2011, 18:37
Mensagens: 383
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Bem galera irei iniciar minha aventura com JSON.
Queria uma dúvida referente a este post, esse tutorial primeiro ensina criar as classes dentro do servidor correto? Pegar dados, inserir, excluir e etc.
Pois no meu caso tenho q criar a string em PHP e ASP, irei trabalhar com os 2.

_________________
Inux Sistemas: http://www.inux.com.br
Inux Sistemas FaceBook: http://www.facebook.com/pages/Inux-Sist ... 1175085481
E-mail: contato@inux.com.br
Skype: garekx
E-mail pessoal: victor_apc@yahoo.com.br

Calculadora IMC: https://play.google.com/store/apps/deta ... 3JhaW1jIl0.

Gerador e Validador de CPF e CNPJ: https://play.google.com/store/apps/deta ... f&hl=pt_BR

Desenvolvimento de aplicativos e Sistemas Android, Web e sistemas Desktops.


23 Fev 2013, 23:10
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 [+Java+JSON+Code]
victorapc escreveu:
Bem galera irei iniciar minha aventura com JSON.
Queria uma dúvida referente a este post, esse tutorial primeiro ensina criar as classes dentro do servidor correto? Pegar dados, inserir, excluir e etc.
Pois no meu caso tenho q criar a string em PHP e ASP, irei trabalhar com os 2.


Não entendi bem o que vc quis dizer, mas esse tópico ensina criar um Web Service em Java!

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 Fev 2013, 20:36
Perfil WWW
Widgets
Widgets

Data de registro: 13 Abr 2011, 18:37
Mensagens: 383
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
É q estou querendo iniciar o meu WEBService.

Só que preciso de fazer em PHP e ASP, queria saber se essa parte 1 é apenas a configuração. Pois quero é a parte q ja retorno a string JSON para o android usar. Minha pergunta era referente a isso, se esse tópico primeiro trata a configuração do servidor ou ja parte para o Android. Não sei se fui bem claro.rsrrsrs

_________________
Inux Sistemas: http://www.inux.com.br
Inux Sistemas FaceBook: http://www.facebook.com/pages/Inux-Sist ... 1175085481
E-mail: contato@inux.com.br
Skype: garekx
E-mail pessoal: victor_apc@yahoo.com.br

Calculadora IMC: https://play.google.com/store/apps/deta ... 3JhaW1jIl0.

Gerador e Validador de CPF e CNPJ: https://play.google.com/store/apps/deta ... f&hl=pt_BR

Desenvolvimento de aplicativos e Sistemas Android, Web e sistemas Desktops.


24 Fev 2013, 23:02
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 [+Java+JSON+Code]
victorapc escreveu:
É q estou querendo iniciar o meu WEBService.

Só que preciso de fazer em PHP e ASP, queria saber se essa parte 1 é apenas a configuração. Pois quero é a parte q ja retorno a string JSON para o android usar. Minha pergunta era referente a isso, se esse tópico primeiro trata a configuração do servidor ou ja parte para o Android. Não sei se fui bem claro.rsrrsrs


Pois é, ainda não foi claro! Essa parte é referente a um web service feito em java, usando a especificação JAX-RS, sob a implementação da API Jersey.

Se vc quer fazer em PHP ou ASP, esse não te servirá em nada, apenas a parte de consumo no Android é que vai te servir.

viewtopic.php?f=7&t=17465

Porém, no geral, eles podem te servir como conhecimento. Já que na teoria web service RESTful é um padrão conceitual, seja qual for a linguagem que vc utilize para implementar, ele vai continuar sendo um web service.

_________________
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 Fev 2013, 02:08
Perfil WWW
Widgets
Widgets

Data de registro: 13 Abr 2011, 18:37
Mensagens: 383
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Isso que queria saber rsrsrs, a parte q me interessa é a parte 2 então =)

Vlw Antunes =)

_________________
Inux Sistemas: http://www.inux.com.br
Inux Sistemas FaceBook: http://www.facebook.com/pages/Inux-Sist ... 1175085481
E-mail: contato@inux.com.br
Skype: garekx
E-mail pessoal: victor_apc@yahoo.com.br

Calculadora IMC: https://play.google.com/store/apps/deta ... 3JhaW1jIl0.

Gerador e Validador de CPF e CNPJ: https://play.google.com/store/apps/deta ... f&hl=pt_BR

Desenvolvimento de aplicativos e Sistemas Android, Web e sistemas Desktops.


25 Fev 2013, 02:30
Perfil WWW
What is Android?
What is Android?

Data de registro: 26 Fev 2013, 22:07
Mensagens: 1
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Salve Antunes.
Primeiramente gostaria de expressar minha admiração pelo trabalho que você fez nestes três artigos, me ajudaram muito e tenho certeza que ajudaram muitas pessoas, como é possível ver pelos comentários.

"Sábios, na verdade, são aqueles que conseguem compartilhar o conhecimento adquirido".

Bom, estou aqui pedindo sua ajuda na seguinte situação. Segui seu tutorial para consumir um WS através da minha aplicação android. Quando eu testo o WS pelo navegador, fica tudo OK. Porém não consigo fazer a minha aplicação cliente consumir tal WS. O seguinte erro aparece:


[2013-03-03 21:54:17 - ddmlib] Uma conexão estabelecida foi anulada pelo software no computador host
java.io.IOException: Uma conexão estabelecida foi anulada pelo software no computador host
    at sun.nio.ch.SocketDispatcher.write0(Native Method)
    at sun.nio.ch.SocketDispatcher.write(Unknown Source)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
    at sun.nio.ch.IOUtil.write(Unknown Source)
    at sun.nio.ch.SocketChannelImpl.write(Unknown Source)
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
    at com.android.ddmlib.Client.sendAndConsume(Client.java:575)
    at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348)
    at com.android.ddmlib.Client.requestAllocationStatus(Client.java:421)
    at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:837)
    at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:805)
    at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:765)
    at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:652)
    at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:44)
    at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:580)


Antes de procurar sua ajuda, pesquisei bastante e tentei algumas possíveis soluções, porém não obtive resultado. Mudei a versão da API Jersey de 1.15 para 1.11 (como foi usada por você no tuto) e o erro insistiu. Tentei acessar o WS através do navegador do AVD e nada. testei 3 possíveis URL's e nada:

- private static final String URL_WS = "http://10.0.2.2:8080/WebServiceREST/cliente/";
- private static final String URL_WS = "http://10.0.2.2:85/WebServiceREST/cliente/";
- private static final String URL_WS = "http://IpDaMinhaMaquina:8080/WebServiceREST/cliente/";

Pode ser que você já tenha passado por isso ou ajudado alguém que tenha passado ou até então visto alguma discussão sobre.
Desde já agradeço e grande abraço.


04 Mar 2013, 00:17
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 [+Java+JSON+Code]
Eu nunca tive esse problema, mas com uma breve pesquisa no google descobri que isso é uma falha no eclipse/ADT/AVD.

http://stackoverflow.com/questions/5618 ... st-machine
http://stackoverflow.com/questions/1021 ... n-my-phone

Muito obrigado pela consideração!! /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??


04 Mar 2013, 00:56
Perfil WWW
What is a Activity?
What is a Activity?

Data de registro: 16 Mar 2012, 14:41
Mensagens: 16
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
olá Antunes,

bem a minha questão se parece mais com o tópico - Recuperar JSON com vários niveis [Resolvido] - mais ja foi fechado, é q eu tenho na web um banco de dados mysql com 2 tabelas q quero importar os seus dados, para dentro de um banco sqlite no android, essas duas tabelas são uma com perguntas e uma com 4 respostas possíveis de cada pergunta, e são por volta de umas 1000 perguntas e umas 4000 respostas,

eu programo em php tambem e fiz uma página em php, que puxa todas essas perguntas e respostas, do banco de dados para essa página, em formato json, igual o modelo dado por vc no tópico - Recuperar JSON com vários niveis [Resolvido] - mas eu nao sei como importar esses dados em formato json desta pagina para dentro do android mais específico, para dentro do banco sqlite no android, em java, vc poderia me ajudar me passando algum exemplo prático dessa questão ???

_________________
by Almir Rogério

<< Deus é Fiel >>
QuizGospel
http://www.quizgospel.com


05 Mar 2013, 15:57
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 [+Java+JSON+Code]
arbmatos escreveu:
olá Antunes,

bem a minha questão se parece mais com o tópico - Recuperar JSON com vários niveis [Resolvido] - mais ja foi fechado, é q eu tenho na web um banco de dados mysql com 2 tabelas q quero importar os seus dados, para dentro de um banco sqlite no android, essas duas tabelas são uma com perguntas e uma com 4 respostas possíveis de cada pergunta, e são por volta de umas 1000 perguntas e umas 4000 respostas,

eu programo em php tambem e fiz uma página em php, que puxa todas essas perguntas e respostas, do banco de dados para essa página, em formato json, igual o modelo dado por vc no tópico - Recuperar JSON com vários niveis [Resolvido] - mas eu nao sei como importar esses dados em formato json desta pagina para dentro do android mais específico, para dentro do banco sqlite no android, em java, vc poderia me ajudar me passando algum exemplo prático dessa questão ???


Chegou a dar uma olhada nesse outro tópico??

viewtopic.php?f=7&t=17465

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


05 Mar 2013, 16:26
Perfil WWW
What is a Activity?
What is a Activity?

Data de registro: 16 Mar 2012, 14:41
Mensagens: 16
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
sim eu vi,esse outro tópico Antunes mais parece q estao atrelados os dois artigos, nesse topico que vc me deu como resposta invoca BuscarTodosGSON e o mesmo nao tem nesse topico, e a url posso trocar por uma da web tipo http://www.qualquer.com/Android/index3011.php, sendo que esta url retorna o formato json ??

_________________
by Almir Rogério

<< Deus é Fiel >>
QuizGospel
http://www.quizgospel.com


06 Mar 2013, 15:08
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 [+Java+JSON+Code]
arbmatos escreveu:
sim eu vi,esse outro tópico Antunes mais parece q estao atrelados os dois artigos, nesse topico que vc me deu como resposta invoca BuscarTodosGSON e o mesmo nao tem nesse topico, e a url posso trocar por uma da web tipo http://www.qualquer.com/Android/index3011.php, sendo que esta url retorna o formato json ??


O Artigo que eu te sugeri é para que vc use como referência, já que nem tudo ali vai servir pra vc.

A ideia é que vc troque a URL que tem lá pela sua e trate o "parse" do JSON para o seu objeto.

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 Mar 2013, 16:18
Perfil WWW
Anatomy of an App
Anatomy of an App

Data de registro: 11 Dez 2012, 11:48
Mensagens: 113
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Olá, primeiramente parabéns pelo artigo!
estou com um problema aqui na hora de rodar o exemplo "hello word"


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


20 Mar 2013, 11: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 [+Java+JSON+Code]
Como vc rodou o projeto??
Usou o projeto exemplo que está em anexo aqui no tópico??
Como está o seu "web.xml"??
Está usando a mesma versão do Jersey que foi usado no projeto exemplo??

Preciso de mais informações sobre o que vc está fazendo, para conseguir te ajudar a identificar o problema!!

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 Mar 2013, 20:18
Perfil WWW
What is Android?
What is Android?

Data de registro: 26 Jan 2013, 08:37
Mensagens: 3
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Boas
Eu gostava de importar o project desta web service para fazer testes.
Eu estava a tentar fazer o import mas como posso fazer isso?
vou a import mas depois não sei qual colocar para importar um projecto de web service
Eu ainda não tenho muita experiência neste ramo...


24 Jun 2013, 12:38
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 [+Java+JSON+Code]
esfarrapa escreveu:
Boas
Eu gostava de importar o project desta web service para fazer testes.
Eu estava a tentar fazer o import mas como posso fazer isso?
vou a import mas depois não sei qual colocar para importar um projecto de web service
Eu ainda não tenho muita experiência neste ramo...


Vc deve estar usando a versão do eclipse para JavaEE e clicar com o botão direito na parte de "package explorer" e depois em "import". Na janela que aparecer, selecione "general" e "existing projects into workspace" dentro dele.

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 2013, 17:07
Perfil WWW
Anatomy of an App
Anatomy of an App

Data de registro: 30 Dez 2011, 10:10
Mensagens: 131
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Olá antunes, gostaria de ter uma opnião.

Como eu poderia enviar uma imagem do android no caso um Bitmap(nao sei se pode ser outra classe, pois nao conheço), para um servidor?

Eu fiz um Web Service aki na empresa, e ela me pediu pra fazer em C#, ate ai td bem, agora o problema esta em enviar imagens para o Wweb service.

Voce ja fez algo parecido? tem alguma ideia de como posso fazer isso?

Agradeço a ajuda se possivel.


26 Jun 2013, 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 [+Java+JSON+Code]
Dá uma olhada nesse cometário aqui!

viewtopic.php?p=155561#p155561

Nele eu passei um link de como implementar isso nos 2 lados, mas o lado do ws é java, não sei como vc vai ter que implementar isso em C#.

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

Data de registro: 27 Dez 2011, 22:08
Mensagens: 1
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Antunues,

Parabens pelo artigo. Você disponibiliza o projeto inteiro ? Como faço para baixa-lo.

anezioesquinelato@gmail.com


24 Set 2013, 23:54
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 [+Java+JSON+Code]
anesquin escreveu:
Antunues,

Parabens pelo artigo. Você disponibiliza o projeto inteiro ? Como faço para baixa-lo.

anezioesquinelato@gmail.com



No final do primeiro post desse tópico tem o link para baixar o exemplo!!

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 Set 2013, 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 [+Java+JSON+Code]
Bom dia pessoal !

Estou com um problema cruel. Estou tentando fazer um UPDATE via web Services com o @PUT, mas não vai nem que ....

Ele me retora o erro 405 : The specified HTTP method is not allowed for the request resource.

Segue os métodos:

REST
public String aprovarProposta(String cod) {  
             String[] resposta = new WebServiceClient().get("http://172.16.2.66:8080/WsPropostasREST/proposta/aprovar/00332");
             
             System.out.println("array retorno:" +resposta[1].toString());
             
             return resposta[1];
            }


Resource
@PUT
    @Path("/aprovar/{id}")
    @Consumes("application/json")
    @Produces("application/json")
   
    public Proposta atualiza_proposta(@PathParam("id") int id) throws Exception{
        Proposta proposta=new PropostaBusiness().atualizar_proposta(id);
        //String rest="0";
        if(proposta  == null){
             throw new Exception("Proposta não encontrada!");
        }
        //else{
            //rest="1";
        //}
         
         return proposta;
    }


Não sei onde pode estar errado.Por favor ajudem.

Obrigado !


30 Out 2013, 10:31
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 [+Java+JSON+Code]
Citação:
...ient().get("http...


Tem certeza que vc está fazendo um PUT???

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


31 Out 2013, 01:47
Perfil WWW
Hello World!
Hello World!

Data de registro: 13 Fev 2012, 21:30
Mensagens: 28
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Onde está o fonte do projeto para download?


19 Fev 2014, 15: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 [+Java+JSON+Code]
fbrigatt escreveu:
Onde está o fonte do projeto para download?


Está no primeiro post desse tópico!

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:19
Perfil WWW
What is Android?
What is Android?

Data de registro: 25 Mai 2014, 19:48
Mensagens: 1
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Antunes parabéns pelos artigos!!!

Mas cara ainda tenho uma grande dúvida...no exemplo de WebService rest artigo dois vc exemplifica como fazer no android chamando o ClienteRest e no exemplo do artigo três não tem exemplo, e o exemplo de WebService que mais gostei, e como faço no android? Qual a classe do meu web service que eu instancio no android para consumir o webService?


13 Ago 2014, 17:45
Perfil
What is Android?
What is Android?

Data de registro: 14 Ago 2014, 04:30
Mensagens: 2
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Olá Antunes, estou executando a aplicação através do codigo fonte disponibilizado aqui, mas a aplicação nao sobe.

Logs do Console:

Ago 14, 2014 4:23:06 AM org.apache.catalina.core.AprLifecycleListener init
INFORMAÇÕES: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre7/bin/server;C:/Program Files/Java/jre7/bin;C:/Program Files/Java/jre7/lib/amd64;C:\Program Files\Java\jre7\bin;D:\Eclipse\eclipse;;.
Ago 14, 2014 4:23:06 AM org.apache.coyote.http11.Http11Protocol init
INFORMAÇÕES: Initializing Coyote HTTP/1.1 on http-8080
Ago 14, 2014 4:23:06 AM org.apache.catalina.startup.Catalina load
INFORMAÇÕES: Initialization processed in 602 ms
Ago 14, 2014 4:23:06 AM org.apache.catalina.core.StandardService start
INFORMAÇÕES: Starting service Catalina
Ago 14, 2014 4:23:06 AM org.apache.catalina.core.StandardEngine start
INFORMAÇÕES: Starting Servlet Engine: Apache Tomcat/6.0.41
Ago 14, 2014 4:23:06 AM org.apache.catalina.startup.HostConfig deployDescriptor
INFORMAÇÕES: Deploying configuration descriptor WebServiceREST.xml
Ago 14, 2014 4:23:06 AM com.sun.jersey.api.core.PackagesResourceConfig init
INFORMAÇÕES: Scanning for root resource and provider classes in the packages:
br.com.droid.resources
Ago 14, 2014 4:23:06 AM com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFORMAÇÕES: Root resource classes found:
class br.com.droid.resources.HelloWorldResource
class br.com.droid.resources.ClienteResource
Ago 14, 2014 4:23:06 AM com.sun.jersey.api.core.ScanningResourceConfig init
INFORMAÇÕES: No provider classes found.
Ago 14, 2014 4:23:07 AM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
INFORMAÇÕES: Initiating Jersey application, version 'Jersey: 1.11 12/09/2011 10:27 AM'
Ago 14, 2014 4:23:07 AM org.apache.coyote.http11.Http11Protocol start
INFORMAÇÕES: Starting Coyote HTTP/1.1 on http-8080
Ago 14, 2014 4:23:07 AM org.apache.jk.common.ChannelSocket init
INFORMAÇÕES: JK: ajp13 listening on /0.0.0.0:8009
Ago 14, 2014 4:23:07 AM org.apache.jk.server.JkMain start
INFORMAÇÕES: Jk running ID=0 time=0/18 config=null
Ago 14, 2014 4:23:07 AM org.apache.catalina.startup.Catalina start
INFORMAÇÕES: Server startup in 1363 ms

Estou tentando rodar a aplicação com jre7, pois estou com dificuldades em na instalação da versão que foi utilizada na aplicação, mas todos os outros componentes estão na mesma versão utilizada.

Aguardo resposta
Grato


14 Ago 2014, 06:47
Perfil
What is Android?
What is Android?

Data de registro: 14 Ago 2014, 04:30
Mensagens: 2
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Olá Antunes sou eu novamente.
Decidi exportar todo o aplicativo WS disponibilizado aqui dentro de uma nova WS
com tudo compativel ainda utilizando o jre7.

O arquivo Helloworld.java funciona normalmente, trazendo a mensagem ao browser.

Mas ao rodar o WS e tentar capturar a tela não tenho sucesso:

http://localhost:8080/ServidorTestREST/;
http://localhost:8080/ServidorTestREST/ ... uscartodos

ainda segue o erro:

HTTP Status 404 - Not Found

type Status report

message Not Found

description The requested resource is not available.

Apache Tomcat/6.0.41


15 Ago 2014, 20:56
Perfil
What is Android?
What is Android?

Data de registro: 27 Ago 2014, 01:41
Mensagens: 1
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Antunes estou com um problema, cara segui todos os seus passos, minha URL esta dessa maneira:
http://10.0.2.2:8080/ServidorTouchActor/ator/listaGSON
Já tentei com
http://10.0.2.2:8080/ServidorTouchActor/ator/lista
http://192.168.0.4:8080/ServidorTouchAc ... /listaGSON.
http://127.0.0.1:8080/ServidorTouchActor/ator/listaGSON.

Enviei meu erro no anexo juntamente com o json.
Notei que Pelo navegador abre normalmente então o WS esta funcional.
Pode me ajudar?
to quebrando a cabeça faz dias e não consigo resolver.


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


27 Ago 2014, 04:08
Perfil
What is Android?
What is Android?

Data de registro: 02 Set 2014, 11:43
Mensagens: 5
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
antunes escreveu:
Pessoal,

Como a galera tem muita dúvida de como criar um Web Service, por onde começar e tudo mais, decidi ajudar você e criei esse artigo bem simples, mas que vocês, se seguirem até o final, sairão com um Web Service criado e pronto pra usar.

Lembrando que o foco aqui é o Web Service! Sobre o Android e o Banco de Dados, abordaremos, em breve, em outros artigos.


Web Service RESTful com JSON, usando a API Jersey!


Nesse artigo desenvolveremos um Web Service para ser consumido por uma app Android. Sabendo disso, precisamos entender alguns pontos críticos do nosso pequeno Droid.

Processamento e memória: Como não temos disponível grandes quantidades de memória e CPU, precisamos pegar leve com isso. A resposta pra isso é usar um Web Service simples, o RESTful, que não é orientado a conexão, ou seja, não grava o estado das conexões e não utiliza cookies.

Banda disponível para internet: Como as conexões 3G e GPRS ainda estão bem atrás das nossas expectativas, precisaremos pegar leve com isso também, logo, já podemos descartar aqueles protocolos baseados em XML, teremos que aderir ao JSON, já que com mensagens menores, menos gastaremos do nosso plano de dados.

Agora precisamos saber o que é um Web Service, RESTful, JSON e para que eles servem.

Web Service nada mais é que uma “interface” que serve, normalmente, para integrar aplicações diferentes, que por sua própria natureza não se comunicam. Existem diferentes arquiteturas para web service, uma delas é o RESTful, que será abordada nesse artigo, que é bem mais simples que as outras, baseadas em SOAP.

REST é uma técnica de de engenharia de software para sistemas distribuídos desenvolvida pelo Roy Fielding. A REST (Transferência do Estado Representacional) é pretendida como uma imagem do design da aplicação se comportará: uma rede de websites (um estado virtual), onde o usuário progride com uma aplicação selecionando as ligações (transições do estado), tendo como resultado a página seguinte (que representa o estado seguinte da aplicação) que está sendo transferida ao usuário e apresentada para seu uso. Sistemas que seguem os princípios do REST são conhecidos como RESTful.

O que é importante ter em mente é que o principal em um restful web service são as URLs do sistema (geralmente são referidas como restful url’s), e os resources. Um resource é um recurso, uma entidade, ou seja, é um objeto com informação que será representado por meio de um XML. Em geral, a URL para acessar esse recurso será sempre a mesma, porém caso mudemos o método HTTP (GET, POST, PUT, DELETE) o resultado da requisição será diferente. Veja os exemplos tabela abaixo:

Método......exemplo.com/recurso.......exemplo.com/recurso/1
GET...........lista os recursos...............detalhes de um recurso
POST.........adiciona um recurso.........-
PUT...........-.......................................atualiza um recurso
DELETE......-.......................................remove um recurso

Porém saiba que no REST não existe um padrão definido, as operações listadas acima são apenas uma sugestão. Ao desenvolver um web service você não é obrigado a implementar todas as operações para seguir um determinado padrão, você só precisa implementar o que é necessário no seu contexto. Por exemplo, eu posso decidir que os recursos não podem ser apagados e não implementar nenhuma operação para o método DELETE. O que deve ser levado em consideração é a convenção das ações. GET deve ser usado para “leitura”, por exemplo listar os detalhes de um recurso. POST deve ser usado para adicionar novos recursos. PUT deve ser utilizado para alterar recursos já existentes. E DELETE para apagar recursos.

JSON é um formato leve para a notação de dados a serem transmitidos, derivado da sintaxe de objetos em Javascript, uma alternativa ao intensamente utilizado XML. JSON é fortemente recomendado ao usar com Android, por consumir menos banda de nossa conexão com a internet.

Abaixo podemos ver a diferença entre os dois.

JSON

{"widget": {
    "debug": "on",
    "window": {
        "title": "Sample Konfabulator Widget",
       "name": "main_window",
       "width": 500,
       "height": 500
    },
   "image": {
        "src": "Images/Sun.png",
        "name": "sun1",
       "hOffset": 250,
       "vOffset": 250,
       "alignment": "center"
    },
   "text": {
        "data": "Click Here",
        "size": 36,
        "style": "bold",
       "name": "text1",
       "hOffset": 250,
       "vOffset": 100,
       "alignment": "center",
        "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
    }
}}  
 


XML

<widget>
   <debug>on</debug>
   <window title="Sample Konfabulator Widget">
       <name>main_window</name>
       <width>500</width>
       <height>500</height>
   </window>
   <image src="Images/Sun.png" name="sun1">
       <hOffset>250</hOffset>
       <vOffset>250</vOffset>
       <alignment>center</alignment>
   </image>
   <text data="Click Here" size="36" style="bold">
       <name>text1</name>
       <hOffset>250</hOffset>
       <vOffset>100</vOffset>
       <alignment>center</alignment>
       <onMouseUp>
           sun1.opacity = (sun1.opacity / 100) * 90;
       </onMouseUp>
   </text>
</widget>
 


Agora que já sabemos toda a teoria que precisamos, vamos colocar a mão na massa.

Muitos, quando descobrem que precisam desenvolver um WS, acabam desistindo por achar que é muito difícil e demoraria dias para desenvolver. Então, decidi fazer um artigo mostrando a simplicidade de se fazer um, em Java, usando a API Jersey.

Premissas:

* Ter instalado o Eclipse IDE for Java EE;
* Tomcat instalado e configurado(Para esse tutorial, usei a versão 6);
* Ter o JDK EE/JRE instalado;

Obs.: Quem quiser pode tentar o EasyEclipse, que já vem com o tomcat, mas eu nunca usei e nem sei se funciona bem.

Obs2.: O que não falta é tutorial pela internet sobre integração entre Tomcat e Eclipse, já que o foco desse artigo não é esse.

JAX-RS e Jersey

O JAX-RS é uma especificação (a JSR-311) que define a criação de um WebService com arquitetura RESTful. Na sua API, são utilizadas anotações, que simplificam a necessidade extra de configurações. Atualmente, o JAX-RS é parte integrante do Java EE.
Como o JAX-RS é apenas uma especificação, é necessário escolher uma implementação. Entre os projetos que o implementam, temos o Jersey, que é open source e mantido pela Oracle, e que é a implementação de referência do JAX-RS.

Recursos que iremos precisar:

O Jersey deverá ser baixado no site oficial. Haverá duas opções, uma é um arquivo zip com todas as dependências e documentação inclusas. Para o tutorial, usei a versão 1.11 do Jersey.
A outra é o jersey-bundle, um jar que já inclui todas as dependências necessárias. Neste exemplo, vamos utilizar o zip mesmo. Haverão cinco jars que devem ser adicionados ao projeto:

* asm.jar
* jersey-core
* jersey-server
* jersey-servlet
* jsr311-api

Estes são os jars obrigatórios em qualquer projeto utilizando o Jersey. No nosso caso, como vamos utilizar o JSON, vamos precisar de mais alguns jars:

* jersey-json

No caso do JAX-RS, para rodar o nosso web service RESTful é necessário um Web Container. No exemplo irei utilizar o Tomcat, porém qualquer outro WebContainer como o Jetty, ou
mesmo um servidor de aplicação Java EE como o Glassfish ou o JBoss, que já possuem um WebContainer, funcionariam do mesmo jeito.

Outro recurso interessante que vamos utilizar é a api google-gson. Api que serve para converter objetos java em JSON e vice-versa.

Configurando nosso ambiente:

Para começar, devemos criar um projeto do tipo Dynamic Web Project no Eclipse. Para o nosso exemplo, criei um projeto chamado WebServiceREST.

Quando criamos um projeto web, se o tomcat já estiver configurado, na tela de “New Dynamic Web Project”, tem um item chamado “Target runtime”, basta selecionar o “Apache Tomcat v6.0” e o “Dynamic web module version” fica em “2.5”.

Para adicionar as libs no seu projeto, basta copiar os jars para o diretório “lib”. Nesse nosso exemplo, ele fica em “workspace/WebServiceREST/WebContent/WEB-INF/lib”.

Pronto, estamos preparados para um pouco de código.

Antes de começar, vamos rodar um pequeno exemplo para testar o nosso ambiente. Como o de costume, o famoso “Hello World”.


package br.com.droid.resources;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("/helloworld")
public class HelloWorldResource {

    @GET
    @Produces("text/plain")
    public String showHelloWorld() {
     return "Olá mundo!";   
    }
}
 


Antes de rodar o exemplo, devemos configurar o web.xml e cadastrar a servlet do Jersey. Ele fica dentro do projeto, em “WebServiceREST/WebContent/WEB-INF”. Preste atenção que devemos passar um parâmetro na inicialização. Esse parâmetro corresponde ao pacote onde estão os nossos resources. Basta seguir o exemplo conforme abaixo:


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>WebServiceREST</display-name>
  <servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
    <param-name>com.sun.jersey.config.property.packages</param-name>
    <param-value>br.com.droid.resources</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>
 


Ao tentar rodar o exemplo pela primeira vez, possivelmente o Eclipse mostrará uma caixa de diálogo para escolher qual servidor utilizar. Lembre-se que você já deve ter o Tomcat instalado e configurado no Eclipse para que ele apareça como uma das opções. Bem, após clicar no botão de executar, caso não tenha aparecido nenhuma exception, podemos testar acessando http://localhost:8080/WebServiceREST/helloworld na barra de endereços do navegador. Altere a URL caso você tenha dado um nome diferente para a aplicação, ou tenha configurado o Tomcat em outra porta. Se tudo estiver certo, você deve ver a mensagem “Olá mundo!”. Nada muito complicado, mas já é o suficiente para saber que está funcionando.

Anotações
Pelo nosso exemplo anterior, já vimos o Jersey em ação e a única coisa que nós fizemos foi adicionar algumas anotações à nossa classe. O Jersey é todo baseado em anotações, e existem várias delas. Vamos listar as mais importantes.
@Path – essa anotação recebe uma string como parâmentro e indica qual é o path da URL. No exemplo anterior, tivemos a classe anotada com o valor ”/helloworld”, e por isso que acessamos a URL como http://localhost:8080/WebServiceREST/helloworld.
@GET – anotação que indica qual o método correspondente do HTTP. Como dito anteriormente, podemos ter a mesma URL para ações diferentes desde que o método HTTP também seja diferente. Da mesma forma, temos as anotações @POST, @PUT e @DELETE.
@Produces – anotação que indica qual o mime-type do conteúdo da resposta que será enviada para o cliente. No exemplo acima, foi “text/plain” para indicar que é texto puro. Em um web service isso é pouco usual, em geral vamos utilizar valores como “text/xml” para devolver XML ou "application/json" para devolver JSON.
@Consumes – anotação que indica qual o mime-type do conteúdo da requisição. Em geral é utilizado principalmente em requisições do tipo POST ou PUT, em que o cliente precisa enviar a informação do que ele deseja adicionar/alterar. Do mesmo jeito que o web service “devolve” JSON ou XML, ele pode “consumir” (receber) conteúdo JSON ou XML.

Agora vamos fazer um exemplo bem simples de CRUD. Primeiro vamos precisar de uma entidade, um bean para conter as informações que nós queremos manipular. Veja o exemplo abaixo:


package br.com.droid.model;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Cliente {

    private int id;
    private String nome;
    private String cpf;
    private String endereco;

// getters e setters    
}
 


Note a presença da anotação @XmlRootElement na definição da nossa classe. Ela é fundamental para que o Jersey conheça a representação do objeto Cliente em JSON. Desse modo os atributos irão se tornar nós no momento em que o JSON for enviado ao cliente(Android). E do mesmo jeito, quando chegar um JSON no corpo de uma requisição, o Jersey vai saber converter esse JSON em um objeto do tipo Cliente.

No mundo real, geralmente você vai ter uma tabela “Cliente” em alguma base de dados e vai desejar buscar a informação quando for requisitado. Aqui para que o exemplo fique mais simples e a gente mantenha o foco apenas na funcionalidade do Jersey, vamos utilizar um Singleton com uma lista para simular a nossa base de dados. Veja o exemplo abaixo:

A classe Banco funciona como um DAO. No construtor, aproveitei para inserir um cliente.


package br.com.droid;

import java.util.ArrayList;
import br.com.droid.model.Cliente;

public class Banco {

    private static Banco instance;
    private ArrayList<Cliente> listaClientes;
    private int idCliente;
   
    private Banco() {
     idCliente = 1;
     listaClientes = new ArrayList<Cliente>();
     Cliente cliente = new Cliente();
     cliente.setCpf("111222333-00");
     cliente.setNome("Alexandre Antunes");
     cliente.setEndereco("Rua das ruas, 9");
     inserir(cliente);
    }
   
    public static Banco getBancoInstance(){
     if(instance==null)
         instance = new Banco();
     return instance;
    }
   
    public ArrayList<Cliente> getListaClientes(){
     return listaClientes;
    }
   
    public String inserir(Cliente cliente){
     cliente.setId(idCliente++);
     listaClientes.add(cliente);
     return "Cliente inserido no banco com sucesso!";
    }
   
    public Cliente buscar(int id){
     Cliente cliente = null;
     for (int i = 0; i < listaClientes.size(); i++) {
         if (listaClientes.get(i).getId() == id){
             cliente = new Cliente();
             cliente = listaClientes.get(i);
             break;
         }
     }
     return cliente;
    }
   
    private int getPosition(int id) {
     int pos = -1;
     for (int i = 0; i < listaClientes.size(); i++) {
         if (listaClientes.get(i).getId() == id){
             pos = i;
         }
     }
     return pos;
    }
   
    public String delete(int id){
     Cliente cliente = buscar(id);
     int pos = getPosition(id);
     if(cliente == null || pos < 0){
         return "Cliente não encontrado!";
     } else {
         listaClientes.remove(pos);
         return "Cliente removido com sucesso!";
     }
         
    }
}
 


O próximo passo é criar o nosso WebResource, que é o responsável por receber e responder as requisições dos aplicativos clientes.


package br.com.droid.resources;

import java.util.ArrayList;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import com.google.gson.Gson;
import br.com.droid.Banco;
import br.com.droid.exception.NoContentException;
import br.com.droid.model.Cliente;

@Path("/cliente")
public class ClienteResource {
   
    @GET
    @Path("/buscarTodos")
    @Produces("application/json")
    public ArrayList<Cliente> selTodos(){
     return Banco.getBancoInstance().getListaClientes();
    }

    @GET
    @Path("/buscarTodosGSON")
    @Produces("application/json")
    public String selTodosGSON(){
     return new Gson().toJson(Banco.getBancoInstance().getListaClientes());
    }
   
    @GET
    @Path("/{id}")
    @Produces("application/json")
    public Cliente getCliente(@PathParam("id") int id){
     Cliente cliente = Banco.getBancoInstance().buscar(id);
    
     if(cliente == null)
         throw new NoContentException("Cliente não encontrado!");
    
     return cliente;
    }
   
    @GET
    @Path("/delete/{id}")
    @Produces("application/json")
    public String deleteCliente(@PathParam("id") int id){
     return Banco.getBancoInstance().delete(id);
    }
   
    @POST
    @Path("/inserir")
    @Produces("application/json")
    @Consumes("application/json")
    public String inserirCliente(Cliente cliente) {
     return Banco.getBancoInstance().inserir(cliente);
    }
}
 


Reparem que tenho 2 métodos fazendo a mesma coisa, um é o selTodos() e o outro é o selTodosGSON(). Por enquanto não faz muito sentido ter esses dois métodos, mas quando a gente estiver fazendo o nosso app Android para conumir esse WS, veremos a diferença na prática.

Em um deles eu deixei o Jersey devolver o JSON e no outro eu usei o GSON para gerar o JSON.

O que acontece é que o jersey não se entende bem com o GSON, mas precisamos que o GSON saiba ler o JSON devolvido e mapear no nosso objeto quando estivermos no Android, então vamos usar GSON<=>GSON que não tem erro!!

O bônus:

Com certeza vocês devem ter reparado na linha:

throw new NoContentException("Cliente não encontrado!");


Que está na classe ClienteResource, dentro do método getCliente(). Então, o que fiz foi apenas criar uma exceção “customizada” para conseguir devolver um objeto mapeado em JSON ou um erro.


package br.com.droid.exception;

import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;

public class NoContentException extends WebApplicationException {
    private static final long serialVersionUID = 1L;

    public NoContentException(String mensagem) {
     super(Response.status(Status.NOT_FOUND).entity(mensagem).build());
    }
   
}
 


Para que eu consiga mapear os erros no android, fiz uma associação com os erros do HTTP. Assim, o “404 Not Found” já me diz o que preciso saber sobre o que aconteceu, bastando colocar no corpo da mensagem http algo mais expecífico como “Cliente não encontrado!”. O interessante é que o WS me devolve essa mensagem de erro em forma de “String”, então posso jogá-la direto na tela.

Poderia ser um “401 Unauthorized” para devolver uma falha na tentativa de login.

Uma mensagem sem erro é retornado “200 OK” e no corpo da mensagem, nesse caso, o objeto “Cliente” em forma de JSON.

Pontos fortes:

* Não preciso ficar mapeando os erros com inteiro, por exemplo: “-1” se não foi encontrado, “0” se deu tudo certo e por aí vai.
* O Android não precisa saber o tipo de erro, ele pega a mensagem e joga na tela.
* Fácil de implementar e de se organizar.

Ponto fraco:

* Essa mensagem vai consumir mais “dados” do que se fosse um caracter apenas.

Agora a parte mais importante, vamos testar o nosso Web Service.

Para testá-lo vamos precisar apenas do Poster, uma extenção do Firefox e Chrome para testar web service ou qualquer outro “web resource” que trabalhe com requisições HTTP.

Depois de devidamente instalado, vamos ao que interessa. Pelo eclipse, inicie o seu projeto, da mesma dorma que fizemos anteriormente com o “Hello World”, botão direito no projeto>Run As>Run on Server.

Vá para o Firefox, abra o Poster, digite a url abaixo no campo URL do Poster e clique em “GET”:

http://localhost:8080/WebServiceREST/cl ... uscarTodos

O retorno deve ser esse:

{"cliente":{"cpf":"111222333-00","endereco":"Rua das ruas, 9","id":"1","nome":"Alexandre Antunes"}}


Para inserir um cliente, basta enviar para o WS o JSON do novo cliente para a url:

Novo cliente:

{"cpf":"000333444-00","endereco":"Rua das ruas, 21","id":"0","nome":"Michel Antunes"}


URL: http://localhost:8080/WebServiceREST/cliente/inserir

Lembrando que agora você deve usar o método POST, já que está enviando dados ao WS.

Outra coisa importante é dizer qual o Content Type da mensagem que vc está enviando, que no nosso caso é “application/json”.

Agora é só brincar!!


Atualização...(10/02/2012)

Recebi uma pergunta de um colega do fórum sobre a possibilidade de enviar uma lista ao WS, ao contrário de como já fizemos de consumir uma lista do WS. Para demonstrar como como fazer, abri essa atualização.

Para prepararmos o nosso WS para receber essa lista, no mundo real, precisaremos fazer modificações na camada Business e na Resources, mas como o nosso é apenas um lab, modificaremos a classe Banco e a ClienteResource.

Não cheguei a explicar o que é e o que faz a camada "Business" porque não temos ela nesse projeto, mas basicamente ele fica entre a camada DAO e a camada Resources. Ela fica responsável por toda a manipulação, seja verificação, validação ou qualquer outra coisa que o objeto precise, antes de enviá-lo ao DAO. Explicarei melhor esse processo no nosso terceiro Artigo.

Vamos começar de dentro pra fora, ou seja, do sentido Banco até Interface do usuário ou WS, que é o nosso caso.

Na classe Banco, incluí apenas um método, que recebe uma lista de clientes e inclui no banco.


public String inserirLista(ArrayList<Cliente> listaCliente) {
     for (int i = 0; i < listaCliente.size(); i++) {
          inserir(listaCliente.get(i));
     }
     return "Lista de clientes inserida no banco com sucesso!";
}
 


E na classe ClienteResource incluí o método que vai se comunicar com o mundo externo.


@POST
@Path("/inserirLista")
@Produces("application/json")
@Consumes("application/json")
public String inserirLista(String listaClientesJson) {
    Gson gson = new Gson();
    ArrayList<Cliente> listaClientes = new ArrayList<Cliente>();
    JsonParser parser = new JsonParser();
    JsonArray array = parser.parse(listaClientesJson).getAsJsonArray();
   
    for (int i = 0; i < array.size(); i++) {
        listaClientes.add(gson.fromJson(array.get(i), Cliente.class));
    }       
    return Banco.getBancoInstance().inserirLista(listaClientes);
}
 


Percebam que eu voltei a usar a api google-gson pelo mesmo fato anterior, compatibilidade entre essa api e o Jersey.

Bom, é isso!! Simples, rápido e muito fácil!! /uu
Abraços!!

PS.: Tenham paciência que vão sair, eu sou um só!! /ww
PS2.: Se tiver algum erro, por favor, me avise para que a correção seja feita.


Fontes e referências:
Artigo sobre WS REST: http://www.k19.com.br/artigos/criando-u ... l-em-java/
Artigo sobre WS REST usando JSON: http://www.k19.com.br/artigos/webservic ... ando-json/
Tese do Roy Fielding: http://www.ics.uci.edu/~fielding/pubs/d ... _style.htm
REST na Wikipedia: http://en.wikipedia.org/wiki/Representa ... e_Transfer
REST na Wikipedia (pt-BR): http://pt.wikipedia.org/wiki/REST
JSON na Wikipedia: http://pt.wikipedia.org/wiki/JSON


Não percam os próximos Artigos:

[Artigo] Web Service RESTful 2 [+Consumir+Android]
[Artigo] Web Service RESTful 3 [+PgSQL+DAO+Business+Factory]



Bom dia!
Otimo projeto, ficou bem claro como funciona!
se tiver mais, compartilha ai,rsss
obrigado!


02 Set 2014, 13:01
Perfil
What is Android?
What is Android?

Data de registro: 02 Set 2014, 11:43
Mensagens: 5
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Otimo projeto!
Se tiver mais, compartilha ai.rss
Obrigado!!!


02 Set 2014, 13:03
Perfil
What is Android?
What is Android?

Data de registro: 04 Jun 2014, 13:08
Mensagens: 1
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Antunes primeiramente gostaria de parabenizar pelo excelente tutorial. Estou desenvolvendo uma aplicação baseada no seu exemplo, só que me surgiu algumas dúvidas na hora de autenticar o usuário, preciso que o web service só responda a solicitações de usuários que estão cadastrado em um tabela user do banco de dados. Uma autenticação simples já resolveria meu problema, gostaria de saber se por acaso você alguma exemplo. Desde já agradeço pela ajuda.


04 Set 2014, 13:19
Perfil
Android Man
Android Man

Data de registro: 23 Abr 2012, 17:32
Mensagens: 917
Localização: Joinville - SC
Mensagem Re: [Artigo] Web Service RESTful [+Java+JSON+Code]
Antunes, boa tarde
e SE eu quiser retorna um T
ao inves de um object padrao, do tipo pessoa, e assim por diante?

SE eu quiser retornar uma classe genérica do tipo assim

public class GenericReturn(){
private boolean isSuccess;
private String errorMessage
private T returnMethod;
}

ja tentou fazer isso?
tentei aqui, e nao consegui,
para eu nao ter que colocar o issuccess e o errormessage em todos meus retornos, eu setaria os meus dados dentro do meu T

ja tentou fazer isso?
nao consegui aqui
valeu

_________________
RaFael
Formação : Bacharel em ciência da computação - UNISUL
rafaelreinaldoduarte@gmail.com - Gtalk
Celular : NEXUS 5
Programador Android, JavaSE, Arduino.


06 Out 2014, 18:44
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 160 Mensagens ]  Ir para a página Anterior  1, 2, 3, 4  Próximo

Quem está online

Usuários vendo este fórum: aechiara, akaytatsu, Alexandre de Queiroz, alexandreufcg, amos, Analista, Anderson MarkZ, andrelom, Aniquiler, antoniodourado, ARAKINIDIO, arkanjo, arquivo51, Arthas, beeshop, Beru Lars, betofigu, boydivalor, bozzano, Bravox, brazucx, brian15, C0GuM3I0, Cajux, caliow, Carla Luz, carlos.macleod, Catapan, Christiane, Cr-Informática, d.paim, Daniel Batista, dariosena, David, DITÃO, Dorpho, dramos, edlinux, epsilva, fabiano_eletro, Felipe Ferreira, felipecomp19, fernandodotnet, Filipe larizzatti, freak, gapler, geco, Gui Pereira, gustavobarbosa, hbarroco, helder, hopper.frf, iuri_freire, JairoCN, jaydson, Jless@, joaquimfoto, jorgecardoso, juliano, Julio Assis, juliomar, klebersilvarocha, laurj, lazarodm, leeeeooooooo, Leonardo, lhdiassilva, lisbao, Liviosousa, Lord, LordElfo, lucianoedipo, luizneto79, Luna, madeinnordeste, marceloaragao, marcosrogel, marianatallas, Maxtremus, Meticore, MSPRAFAEL, nakahara, nsansilva, otpor, Padawan, paulosantos, pchofard, poponeis, ramonsa, raulcca, Ricardo Chikasawa, rlecheta, roberto caceres, Robson Florentino, rtodao, Samantha, Samuka, scattonevi, sephct, Shinigami, slackware, thiago20, tirloni, tnarnold, Toks, tonholis, tricx16, voliverio 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