1

オブジェクトとしてxmlを投稿し、サーバーからの応答本文でxmlを受信するjax-rsクライアントを作成しようとしています。コードは次のとおりです。

import org.apache.cxf.jaxrs.client.WebClient;
..
TravelRequest tr = ...
..
WebClient client = WebClient.create(url);
client.type(javax.ws.rs.core.MediaType.APPLICATION_XML_TYPE).accept(javax.ws.rs.core.MediaType.APPLICATION_XML_TYPE);
javax.ws.rs.core.Response r = client.post(tr);
Object response = r.getEntity();

応答オブジェクトの Java タイプは、sun.net.www.protocol.http.HttpURLConnection$HttpInputStream です。入力ストリームから xml を読み取る代わりに、TravelRequest タイプのオブジェクトを取得することは可能ですか? 誰かがその例を知っていますか?Spring を使用してクライアントを構成することもできます。どんな助けでも大歓迎です。

4

2 に答える 2

1

これがその方法です。

TravelRequest travelRequest = client.post(tr, TravelRequest.class);

これが誰かを助けることを願っています。

于 2014-10-18T11:42:29.210 に答える
1

あなたはWebClient間違った方法を使用しています。accepttypeのようなメソッドは変更WebClientませんが、更新されたクライアントを返します

したがって、正しい使用法は次のとおりです。

WebClient client = WebClient.create(url);
Response response = client.type(...).accept(...).post(tr);

その後Response.getEntity()、 を使用して応答を抽出できます。

CXF は、応答本文をクラスにマップするために使用できるさまざまな形式のデータ バインディングをサポートしています。

于 2012-11-05T08:00:32.320 に答える