3
Jersey Client를 사용하여 REST 서비스 호출을하고 있습니다. 이제 응답을 받으면 json 응답을 기록하려고하고 엔터티를 응답 bean에 채우고 싶습니다. 저지 클라이언트 로그 응답 및 getEntity
Client client = Client.create(config);
ClientResponse cr = client
.resource(endPoint)
.accept("application/json")
.get(ClientResponse.class);
clientResponse.bufferEntity();
String responseToLog = cr.getEntity(String.class);
log.debug(responseToLog);
MyResponseBean myResponse = cr.getEntity(MyResponseBean.class);
이제 문제는 스트림이 후 처음으로 소비됩니다 우리가 두 번째로 사용할 수 없기 때문에 우리가() 두 배 getEntity를 호출 할 수 있다는 것입니다. 따라서 위의 코드는
No content to map to Object due to end of input
을 예외로합니다. 나는 이것이 매우 독특한 요구 사항이 아니며 공통적이라고 확신합니다. 그렇다면 동일한 작업을 수행하는 가장 좋은 방법이나 방법은 무엇입니까?
저지 [LoggingFilter] (https://jersey.java.net/nonav/apidocs/1.19/jersey/com/sun/jersey/api/client/filter/LoggingFilter.html)를 사용할 수 있습니다. 시체를 기록해야합니다. 그렇지 않은 경우 PrintStream을 제공하여 입력을 캡처 할 수도 있습니다. 아니면 bufferEntity가 작동해야합니다. 나는 모른다. 잠시 동안 Jersey 1을 사용하지 않았습니다. –
시도해 볼 수는 있지만 기존 로거로 LoggingFilter를 연결하는 방법을 모르겠습니다. 나는 이것을 점검 할 것이다. – Siddharth