Boa noite, segui o tutorial que você passo e deu certo, só que estou obtendo o seguinte erro quando tento gerar uma lista de JSON.
abr 06, 2017 1:40:49 AM org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor aroundWriteTo
GRAVE: MessageBodyWriter not found for media type=application/json, type=class java.util.ArrayList, genericType=java.util.List<br.com.okchefe.model.Pessoa>.
Essas são as classes do meu projeto e o pom.xml:
`package br.com.xxxxx.model;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Pessoa {
private Integer id;
private String nome;
public Pessoa(Integer id, String nome) {
this.id = id;
this.nome = nome;
}
@Override
public String toString() {
return "Pessoa [id=" + id + ", nome=" + nome + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((nome == null) ? 0 : nome.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Pessoa other = (Pessoa) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (nome == null) {
if (other.nome != null)
return false;
} else if (!nome.equals(other.nome))
return false;
return true;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
`
package br.com.xxxxxx.ws;
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import br.com.okchefe.model.Pessoa;
@Path("/ola")
public class Jarsey {
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Pessoa> listaPessoas() {
List<Pessoa> listaPessoas = new ArrayList<Pessoa>();
listaPessoas.add(new Pessoa(1, "João Rafael"));
listaPessoas.add(new Pessoa(2, "Will"));
listaPessoas.add(new Pessoa(3, "Joarez"));
return listaPessoas;
}
}
meu pom.xml
<?xml version="1.0" encoding="UTF-8"?>
4.0.0
org.okchefe
okchefe
1.0.0-SNAPSHOT
war
<repositories>
<repository>
<id>maven2-repository.java.net</id>
<name>Java.net Repository for Maven</name>
<url>http://download.java.net/maven/2/</url>
<layout>default</layout>
</repository>
</repositories>
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jersey2.version>2.19</jersey2.version>
<jaxrs.version>2.0.1</jaxrs.version>
</properties>
<dependencies>
<!-- JAX-RS -->
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>${jaxrs.version}</version>
</dependency>
<!-- Jersey 2.19 -->
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>${jersey2.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>${jersey2.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>${jersey2.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-processing</artifactId>
<version>2.25.1</version>
</dependency>
</dependencies>
<build>
<finalName>okchefe</finalName>
</build>