【发布时间】:2012-05-01 21:59:44
【问题描述】:
我正在使用 @InjectParam 将查询参数注入到 JAX-RS 资源中,该资源包含 Jersey 1.12 实现上的 @QueryParam 注释字段。
关于资源:
@Path("query")
@GET
@Produces(MediaType.APPLICATION_XML)
public Query queryParam(@InjectParam Query query) {
return query;
}
在接收注入参数的 pojo 中,我有一些 JAXB 和 JAX-RS 注释。
@XmlRootElement
public class Query {
@QueryParam("value1")
String value1;
}
来自 REST 客户端的简单测试:
产生正确的结果:
<query>
<value1>hello3</value1>
</query>
很好,但我也使用wadl-maven-plugin 来生成一个客户端,该客户端使用 WADL 文件来生成客户端代码。如果资源方法参数中包含@QueryParam 注释,WADL 文件不包含必要的request parameters。随后我的客户被生产为不接受任何参数:
SandboxApi.sandbox().query().getAsQuery()
而不是接受填充生成的客户端 pojo。
Query queryClient = new Query();
queryClient.setValue1("hello3");
SandboxApi.sandbox().query().getAsQuery(queryClient);
任何人都知道我可以在 Jersey 资源上放置一个魔术注释,该注释将生成一个包含正确信息的 WADL,以便 Wadl2Java 可以生成一个接受 POJO 并随后发送适当字段作为查询参数的客户端?
【问题讨论】: