Définir les paramètres de requête sur un appel de test Jersey

J'ai un Maillot à base de servlet Java:

@Path("foo")
class Foo {
  @GET
  @Path("bar")
  public Response bar(@QueryParam("key") String value) {
    //...
  }
}

Je peux l'appeler dans Tomcat juste amende:

http://localhost:8080/container/foo/bar?key=blah

Cependant, dans mon JerseyTest, à l'aide de Grizzly, c'est de ne pas traiter les paramètres correctement. Ce test renvoie une erreur 404:

@Test
public void testBar() {
  final Response response = target("foo/bar?key=blah").request().get();
}

Je soupçonne que le problème c'est que c'est la recherche d'une ressource nommée foo/bar?key=blah plutôt que d'essayer de passer key=blah de la ressource en foo/bar. Si je passe juste "foo/bar" à target()je reçois un 500, comme le code déclenche une exception pour un paramètre null.

J'ai regardé à travers le Maillot de la documentation de Test, et quelques exemples, et j'ai trouvé quelques cryptique à la recherche de trucs qui pourraient avoir été pour passer des paramètres à un, mais personne n'a regardé comme il était de l'attribution des valeurs de paramètres, donc je n'étais pas positif comment j'allais l'utiliser.

Comment puis-je passer ma valeur pour ce paramètre?

source d'informationauteur kwiqsilver