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
Vous devez vous connecter pour publier un commentaire.
JavaDoc pour WebTarget.queryParam() devrait vous donner une réponse à votre problème. Fondamentalement, vous avez besoin pour transformer votre code à quelque chose comme: