2013-05-15 2 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 아파치 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는 저에게 효과적입니다. –