WebService com Jersey e JSON

0 respostas
erico_kl

Olá Pessoal!

Estou implementando um WebService RESTful usando o Jersey mas me bateu uma dúvida.. Qual seria a melhor forma de enviar 2 objetos (ou mais) para o ws (resource)? Quando mandamos um objeto somente, o Jersey faz o parse para JSON e o servidor recebe normalmente. Exemplo:

Servidor:
@Path("/produto")
public class ProdutoResource {
   
   @POST
   @Consumes(MediaType.APPLICATION_JSON)
   @Produces(MediaType.APPLICATION_JSON)
   public Produto add (Produto p) {
      //... qualquer coisa que modifique o produto aqui
      return p;
   }
}
Cliente (Jersey client API):
Client c = Client.create();
WebResource wr = c.resource("http://localhost:8080/aplicacao/rest/produto");

Produto p = new Produto(...);

Produto pRet = wr.type(MediaType.APPLICATION_JSON).post(Produto.class, p);

Ou seja, a conversão para JSON é feita implicitamente (em ambos os lados)..
Até aí ta tranquilo, mas o que eu preciso é fazer algo como:

Servidor:
@Path("/produto")
public class ProdutoResource {
   
   @POST
   @Consumes(MediaType.APPLICATION_JSON)
   @Produces(MediaType.APPLICATION_JSON)
   public Produto add (Produto p, Cliente c) {
      // aqui eu teria que ter um objeto produto e um objeto cliente, através do JSON
      return p;
   }
}

Existe alguma maneira de eu passar isso pelo cliente Jersey e receber desta forma no servidor? Ou terei que encapsular estes 2 objetos em um só (mesmo que eles não se vinculem semanticamente)?

Já li a documentação do Jersey mas não tem nada deste tipo lá.. Se alguém puder ajudar ou dar alguma dica, ficarei grato.
Valeu!

Criado 24 de novembro de 2012
Respostas 0
Participantes 1