RestTemplate logging POST data
log4j, resttemplate, spring
Solution
From your analysis it seems that you expect RestTemplate to use Apache HttpClient.
However, by default, Spring RestTemplate does not use Apache HttpClient but uses the JDK facilities (java.net.URL#openConnection() etc.) by means of SimpleClientHttpRequestFactory.
org.springframework.http.client.support.HttpAccessor declares:
private ClientHttpRequestFactory requestFactory = new
SimpleClientHttpRequestFactory();
As far as I know, this client does not support logging requests/responses.
To change RestTemplate to use HttpClient, try this:
new RestTemplate(new HttpComponentsClientHttpRequestFactory());
Logging configuration should then enable category `org.apache.http.wire` at level `debug` for complete requests/responses to be logged.
Problem
my resttemplate.exchange() failed on a POST request, with the server returning a 500 error. I tried to set the root logging level to DEBUG, but nothing was logged before the 500 error was returned. to make sure that my logging config is right, I added a line before the resttemplate call ``` HttpClient client = new DefaultHttpClient(); client.execute(new HttpGet("http://google.com")); ``` in this case indeed a lot of logging messages appeared. so how can I make RestTemplate export the debugging data? Thanks Yang