@InjectParamを使用して、Jersey 1.12 実装の @QueryParam 注釈付きフィールドを含む JAX-RS リソースにクエリ パラメータを挿入しています。
リソース:
@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 ファイルを使用してクライアント コードを生成するクライアントを生成します。WADL ファイルには、@QueryParam アノテーションがリソース メソッド パラメータに含まれていた場合に必要な要求パラメータが含まれていません。その後、クライアントはパラメーターを受け入れないように作成されます。
SandboxApi.sandbox().query().getAsQuery()
生成された入力済みのクライアント pojo を受け入れる代わりに。
Query queryClient = new Query();
queryClient.setValue1("hello3");
SandboxApi.sandbox().query().getAsQuery(queryClient);
Wadl2JavaがPOJOを受け入れ、その後適切なフィールドをクエリパラメータとして送信するクライアントを生成できるように、適切な情報でWADLを生成するジャージーリソースに付けることができる魔法の注釈を知っている人はいますか?