Как вы получаете ведение журнала от клиента CXF Rest?
Это заняло у меня довольно много времени, чтобы понять. Я задаю этот вопрос, чтобы ответить на него для других:
Как получить полезную информацию для ведения журнала от клиента CXF Rest? Например: url, параметры, полезная нагрузка, ответ и т. д.
Примечание: этот вопрос уже существует, но он спрашивает о CXF и Resteasy. Мне нужен только ответ для CXF: вход в CXF и клиенты RestEasy
2 ответа:
Вот как вы это делаете с CXF:
import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; import org.apache.cxf.interceptor.LoggingInInterceptor; import org.apache.cxf.interceptor.LoggingOutInterceptor; import org.apache.cxf.jaxrs.client.ClientConfiguration; import org.apache.cxf.jaxrs.client.WebClient; import org.json.JSONException; import org.json.JSONObject; ... WebClient client = WebClient.create(endPoint, providers).accept(MediaType.APPLICATION_JSON).type(MediaType.APPLICATION_JSON); ClientConfiguration config = WebClient.getConfig(client); config.getInInterceptors().add(new LoggingInInterceptor()); config.getOutInterceptors().add(new LoggingOutInterceptor());
Использование клиента JAX-RS 2.0 из CXF 3.1.x у меня возникли некоторые проблемы с получением LoggingInInterceptor и LoggingOutInterceptor для работы. Я изменил, чтобы использовать LoggingFeature, как описано в http://cxf.apache.org/docs/message-logging.html и это сработало с первой попытки:
Client client = ClientBuilder.newBuilder().register(LoggingFeature.class).build()