繁体   English   中英

记录传出 JBoss EAP 7/RESTEasy 请求

[英]Log Outgoing JBoss EAP 7/RESTEasy Requests

有没有办法记录使用 ResteasyClientBuilder 创建的客户端发出的传出 HTTP 请求?

我们的一个服务向另一个服务发出的请求有问题,我们想查看 RESTEasy/JBoss EAP 7 正在创建/发送的实际 HTTP 请求的标头、正文等。

Resteasy 客户端使用的是 Apache HTTP 客户端。 您可以为org.apache.http package 设置级别DEBUG以查看日志:

<logger category="org.apache.http" use-parent-handlers="true">
    <level name="DEBUG"/>
</logger>

如果您希望在下面记录来自客户的请求

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(new 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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM