Olá, pessoal! O artigo de hoje tem como objetivo ensinar como retornar um objeto JSON usando Jersey em cinco minutos. Acredito que você já sabe o que é Jersey e o que é um objeto JSON, certo? Vou pular toda a teoria e ir direto para a prática.
Lets go…
Starting
Crie um projeto maven webapps.
No pom.xml deixe assim :
<dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>1.8</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-json</artifactId> <version>1.8</version> </dependency> <build> <finalName>hellojersey</finalName> </build>
Em src/main/java crie um package e uma classe:
HelloJerseyService.java
É a classe que terá o serviço, veja:
@Path("/hello") public class HelloJerseyService { @GET @Path("/client") @Produces(MediaType.APPLICATION_JSON) public Client getCliente() { Client client = new Client(); client.setName("Hello World Camilo"); return client; } }
@Path – aqui estamos dizendo que caminho seguir para acessar esse serviço. E para obter um cliente é através do /client sendo a url completa assim /hello/client
Crie a classe Client.java
public class Client { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
Abra o arquivo web.xml, pois precisamos dizer que vamos usar o Jersey e fazer umas configurações, portanto crie o servlet a seguir:
<servlet> <servlet-name>jersey-servlet</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>com.camilolopes.jersey.services</param-value> </init-param> <init-param> <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> <param-value>true</param-value> </init-param> </servlet>
No primeiro init-param estamos dizendo onde está o package com a classe de serviço para o Jersey. No segundo estamos dizendo: “pode ser retornado um objeto JSON”. E aqui:
<servlet-mapping> <servlet-name>jersey-servlet</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping>
Estamos configurando o mapping para acessar essa parte da aplicação, ou seja, será:
http://localhost:8080/hellojersey/rest/hello/client
Testando
Execute o seguinte comando:
maven mvn tomcat:run
E acesse pelo browser http://localhost:8080/hellojersey/rest/hello/client
Download do projeto no GitHub: https://github.com/camilolopes/myworkspace
Simples não? Vou ficando por aqui.
See ya!!
Abraços.