У меня есть Java-сервлет на основе Java:
@Path("foo")
class Foo {
@GET
@Path("bar")
public Response bar(@QueryParam("key") String value) {
// ...
}
}
Я могу назвать его в Tomcat просто отлично, как:
http://localhost:8080/container/foo/bar?key=blah
Однако, в моем JerseyTest, используя Grizzly, он неправильно обрабатывает параметры. Этот тестовый пример возвращает ошибку 404:
@Test
public void testBar() {
final Response response = target("foo/bar?key=blah").request().get();
}
Я подозреваю, что проблема заключается в поиске ресурса с именем foo/bar?key=blah
вместо того, чтобы пытаться передать key=blah
ресурсу в foo/bar
. Если я передаю только "foo/bar"
в target()
, я получаю 500, так как код генерирует исключение для нулевого параметра.
Я просмотрел документацию по тестированию в Джерси и некоторые примеры, и я нашел некоторые загадочные вещи, которые могли бы быть переданы параметрам в GET, но ни один из них не выглядел так, как будто он присваивал значения параметрам, поэтому я wasn ' t положительно, как я буду использовать его.
Как передать значение для этого параметра?