2013-05-15 20 views
7

POSTリクエストでmy resttemplate.exchange()が失敗し、サーバーが500エラーを返しました。RestTemplateログPOSTデータ

ルートログレベルをDEBUGに設定しようとしましたが、500エラーが返される前に何も記録されませんでした。私のログの設定が正しいことを確認するために、私はこのケースでresttemplateコール

HttpClient client = new DefaultHttpClient(); 
client.execute(new HttpGet("http://google.com")); 

前に行を追加して実際にログメッセージがたくさん登場しました。

どうすればRestTemplateでデバッグデータをエクスポートできますか?

おかげ ヤン

答えて

10

あなたの分析から、あなたがRestTemplateは、ApacheのHttpClientを使用することを期待しているようです。

しかし、デフォルトでSpring RestTemplateはApache HttpClientを使用せず、SimpleClientHttpRequestFactoryを使用してJDK機能(java.net.URL#openConnection()など)を使用します。

org.springframework.http.client.support.HttpAccessorを宣言しています。

private ClientHttpRequestFactory requestFactory = new 
SimpleClientHttpRequestFactory(); 

私の知る限りでは、このクライアントはロギング要求/応答をサポートしていません。

がRestTemplateはHttpClientをを使用するように変更するには、これを試してみてください。

new RestTemplate(new HttpComponentsClientHttpRequestFactory()); 

ログの設定は、次にログインする完全な要求/応答のレベルdebugでカテゴリorg.apache.http.wireを有効にする必要があります。

+0

これがバージョンに依存しているかどうかわかりませんが、org.apache.http.wireのデバッグ設定がSpring RestTemplateで動作しません。 – IcedDante

+0

org.springframework.httpを追加するとDEBUGが動作します –

関連する問題