2017-01-17 13 views
0

Есть ли способ зарегистрировать исходящие HTTP-запросы, созданные клиентами, созданные с помощью ResteasyClientBuilder?Log Outgoing JBoss EAP 7/Запросы RESTEasy

У нас возникли проблемы с запросами, сделанными одним из наших сервисов другому, и мы хотим просмотреть заголовки, тело и т. Д. Фактического HTTP-запроса, который создает/отправляет RESTEasy/JBoss EAP 7.

+0

Вы хотите войти ответ от службы или запрос вы создали? для реализации ответа: PostProcessInterceptor – gladiator

+0

Я хочу зарегистрировать HTTP-запрос, который моя служба делает для проверки заголовков и тела. Мы получили эту информацию, выполнив сброс tcp на сервере. Но поскольку вызываемая служба использует https, нам нужно было создать прокси, чтобы пройти сначала, чтобы захват был доступен для чтения. Было бы намного лучше, если бы мы могли просто зарегистрировать исходящий запрос. – sdoca

+0

может быть, это поможет http://blogs.adobe.com/livecycle/2011/10/how-to-enable-jboss-to-log-http-payloads.html, но он будет делать для всех запросов Также работает сервер в режиме отладки также печатает весь запрос, но его слишком тяжелый – gladiator

ответ

0

Если вы хотите, чтобы войти запрос с использованием клиента ниже

Client client = ClientBuilder.newClient(); 
    String url = "https://translate.googleapis.com/translate_a/single?client=gtx&sl=" + "en" + "&tl=" + "hi" 
      + "&dt=t&q=" + URLEncoder.encode(msg); 
    client.register(new LoggingFilter()); 

Здесь client.register (новый LoggingFilter()); действительно регистрируется для вас, вы можете передать ему регистратор.

Выход

Jan 20, 2017 1:13:48 PM org.glassfish.jersey.filter.LoggingFilter log 
INFO: 1 * Sending client request on thread http-bio-127.6.45.129-8080-exec-2 
    https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=hi&dt=t&q=ad 
Jan 20, 2017 1:13:48 PM org.glassfish.jersey.filter.LoggingFilter log 
INFO: 1 * Sending client request on thread http-bio-127.6.45.129-8080-exec-2 
1 > GET https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=hi&dt=t&q=ad 
Jan 20, 2017 1:13:51 PM org.glassfish.jersey.filter.LoggingFilter log 
INFO: 1 * Client response received on thread http-bio-127.6.45.129-8080-exec-2 
1 < 200 
1 < Accept-Ranges: none 
1 < Access-Control-Allow-Origin: * 
1 < Alt-Svc: quic=":443"; ma=2592000; v="35,34" 
1 < Cache-Control: no-cache, no-store, must-revalidate 
1 < Content-Disposition: attachment; filename="f.txt" 
1 < Content-Type: application/json; charset=UTF-8 
1 < Date: Fri, 20 Jan 2017 07:43:51 GMT 
1 < Expires: Fri, 01 Jan 1990 00:00:00 GMT 
1 < Pragma: no-cache 
1 < Server: HTTP server (unknown) 
1 < Transfer-Encoding: chunked 
1 < Vary: Accept-Encoding 
1 < X-Content-Type-Options: nosniff 
1 < X-Frame-Options: SAMEORIGIN 
1 < X-XSS-Protection: 1; mode=block 

То же самое можно сделать путем редактирования web.xml ниже

<web-app> 
    <display-name>Archetype Created Web Application</display-name> 
    <servlet> 
    <servlet-name>Jersey Web Application</servlet-name> 
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 

    <init-param> 
     <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name> 
     <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value> 
    </init-param> 
    <init-param> 
     <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name> 
     <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value> 
    </init-param> 

<init-param> 
     <param-name>javax.ws.rs.Application</param-name> 
     <param-value>com.webspherenotes.rest.ContactApplication</param-value> 
    </init-param> 

    </servlet> 
    <servlet-mapping> 
    <servlet-name>Jersey Web Application</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 

</web-app> 
+0

Спасибо за помощь. Это изменение кода, и я надеялся, что смогу включить что-то в JBoss, которое включает/выключает ведение журнала запросов. – sdoca

+0

отредактировал класс ответа для параметра init, который может отличаться для новой версии трикотажа – gladiator

+0

Обновление web.xml совпадает с изменением кода. Для этого требуется создание/развертывание приложения. Как было сказано ранее, я искал общий способ включения/выключения ведения журнала в JBoss EAP. Кроме того, JBoss использует RESTEasy, а не Джерси. – sdoca