Jersey. Comment générer du json et xml de sortie en fonction de param url

Ici est un Jersey service:

@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Response service(@QueryParam("format") String format) {

  if (format.equals("json")) {...}

  return response;

}

Je veux générer XML ou JSON réponse selon param url "format".

Mon réponse instance est mise en forme par jaxb2

Je sais que je peut obtenir xml ou json réponse si sur mon client Java /test fonctionnel en utilisant ce code:

String content = service.path("").queryParam("myparam", "myvalue").accept(MediaType.APPLICATION_XML).get(String.class);

ou

String content = service.path("").queryParam("myparam", "myvalue").accept(MediaType.APPLICATION_JSON).get(String.class);

Mais j'ai besoin de le faire en fonction de l'url param.

Si vous pouviez envoyer une ContentType paramètre, application/json au lieu de json, alors vous pouvez utiliser MediaType.valueOf(format) pour obtenir le MediaType instance et de l'utiliser avec l'accepter méthode.
Est votre problème que vous ne savez pas comment définir le temps de réponse du type de contenu, ou...?

OriginalL'auteur ses | 2013-08-02