我正在使用@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 文件不包含必要的请求参数。随后,我的客户被生产为不接受任何参数:
SandboxApi.sandbox().query().getAsQuery()
而不是接受填充生成的客户端 pojo。
Query queryClient = new Query();
queryClient.setValue1("hello3");
SandboxApi.sandbox().query().getAsQuery(queryClient);
任何人都知道我可以在 Jersey Resource 上放置一个魔术注释,该注释将生成一个带有正确信息的 WADL,以便 Wadl2Java 可以生成一个接受 POJO 并随后发送适当字段作为查询参数的客户端?