Olá Pessoal,
O post de hoje tem como objetivo ensinar como retornar um objeto JSON usando Jersey em 5min. Então acredito que você já sabe o que é Jersey e o que é um objeto JSON, certo? Vou pular toda a teoria e ir direto para 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
Simples não? Vou ficando por aqui.
See ya!!
Abraços.
Ola boa noite!!!
Estou tentando usar o seu archtype e nao estou consguindo ,poderia me dar uma força, estou querendo separar tudo
olá Diego,
Qual archetype está tentando usar? E qual erro que aparece?
abraço,
Diego, o archetype a ser utilizado é especifico para o Jersey.
O archetype webapp, padrão do maven, não funciona.
Dá uma pesquisada no google para baixar o archetype do Jersey.