kwi*_*ver 13 java jersey grizzly jersey-2.0
我有一个基于Jersey的Java servlet:
@Path("foo")
class Foo {
@GET
@Path("bar")
public Response bar(@QueryParam("key") String value) {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
我可以在Tomcat中称它为:
http://localhost:8080/container/foo/bar?key=blah
Run Code Online (Sandbox Code Playgroud)
但是,在我的JerseyTest中,使用Grizzly,它没有正确处理参数.此测试用例返回404错误:
@Test
public void testBar() {
final Response response = target("foo/bar?key=blah").request().get();
}
Run Code Online (Sandbox Code Playgroud)
我怀疑问题是它正在寻找一个名为资源foo/bar?key=blah
而不是试图传递key=blah
给资源的资源foo/bar
.如果我只是传递"foo/bar"
给target()
,我得到一个500,因为代码抛出一个null参数的异常.
我查看了Jersey测试文档,以及一些示例,我发现了一些可能用于将参数传递给GET的神秘内容,但没有一个看起来像是为参数赋值,所以我并不积极如何我会用它.
如何将该值传递给该参数?
Mic*_*dos 36
JavaDoc到WebTarget.queryParam()应该为您提供问题的答案.基本上你需要将代码转换为:
target("foo/bar").queryParam("key", "blah").request().get()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14819 次 |
最近记录: |