JAXB バインド オブジェクトを生成および使用できるようにジャージー サーバーをセットアップする方法の例をたくさん見つけていますが、クライアントに同じ JAXB バインド オブジェクトをポストさせる方法の例を見つけるのに苦労しています。 この例は、XML でそれを行う方法を示しています。JSONでそれを行う方法を示すものを探しています。
これが可能かどうかさえわかりません。postメソッドの javadocがあいまいです。
私の投稿は次のようになります。
Client client = Client.create();
WebResource resource = client.resource(uri);
ClientResponse response = resource.type(MediaType.APPLICATION_JSON)
.post(ClientResponse.class, instanceWithXmlRootElementAnnotation);
これを試すと、サーバーがリクエストを取得しますが、のフィールド@FormParam
は常に null として送信されます。サーバー側メソッドの署名は次のとおりです。
@POST
@Path("apath")
@Consumes(MediaType.APPLICATION_JSON)
public String postAPath(@FormParam("InstanceWithXmlRootElementAnnotation")
InstanceWithXmlRootElementAnnotation instanceWithXmlRootElementAnnotation) {
//instanceWithXmlRootElementAnnotation is always null
他に疑問に思っていることは、を使用する必要があるかどうかですinstanceWithXmlRootElementAnnotation
。これが従来の Web サービスである場合、JAXB を使用して、クライアントが使用するオブジェクトを生成し、生成されたクラスを送信します。しかし、リンク先の例から収集したものから、男は生成されたクラスではなく、ソースを送信しています。