Olá pessoal,
Estou fazendo um helloword Rest utilizando as bibliotecas do Jersey e estou com um problema na hora de devolver os objetos para as requisições.
Bom, primeiramente, vou explicar meu cenário:
- Eclipse 3.4
- Tomcat 6.0
- configuração do web.xml:
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.ws.rest.config.feature.Redirect</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>com.sun.ws.rest.config.feature.ImplicitViewables</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
- bibliotecas: activation.jar, asm-3.1.jar, jaxb-impl-2.1.12.jar, jersey-core-1.1.4.1.jar, jersey-json-1.1.4.1.jar, jersey-server-1.1.4.1.jar, jettison-1.1.jar, jsr311-api-1.1.1.jar, xstream-1.2.2.jar
- bean:
public class Pessoa {
private int id;
private String nome;
private int idade;
public Pessoa(){}
public Pessoa(int id, int idade, String nome) {
super();
this.id = id;
this.idade = idade;
this.nome = nome;
}
// GETS e SETS
}
- resource:
@Path("pessoa")
@Consumes( { "text/xml", "application/json" })
@Produces( { "text/xml", "application/json" })
public class PessoaController {
private PessoaService pessoaService = null;
public PessoaController(){
this.pessoaService = new PessoaService();
}
@GET
@Path("{idPessoa}")
public Response buscarPessoa(@PathParam("idPessoa") Integer idPessoa){
if(idPessoa != null){
Pessoa pessoa = null;
try {
pessoa = this.pessoaService.buscarPeloId(idPessoa);
} catch (IndiceException e) {
e.printStackTrace();
}
if(pessoa != null){
return Response.ok(pessoa).build();
}
}
return Response.status(HttpServletResponse.SC_NOT_FOUND).build();
}
}
Faço a requisição para a url: http://localhost:8080/testRest/pessoa/1 o método de busca é acessado, trás o objeto pessoa do banco, mas na hora de realizar o Response retorna o seguinte erro:
SEVERE: A message body writer for Java type, class br.com.consist.solutions.rest.bean.Pessoa, and MIME media type, text/xml, was not found
16/12/2009 10:56:12 com.sun.jersey.server.impl.application.WebApplicationImpl onException
SEVERE: Internal server error
javax.ws.rs.WebApplicationException
at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:253)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:814)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:740)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:731)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:372)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:452)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:633)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Alguém já passou por isso? O que está faltando, configuração ou biblioteca?
Desde já obrigado pela atenção.