You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过配置方式用javax.ws.rs记录应用outgoing请求(Wildfly环境)

记录Wildfly中JAX-RS客户端的所有Outgoing请求(非编程配置方式)

你需要在Wildfly环境下,通过非编程配置记录所有JAX-RS(Resteasy)客户端的outgoing请求,方便后续在Postman或curl中重建请求,以下是几种可行的配置方案:

方案一:通过Wildfly日志子系统配置

直接修改Wildfly的配置文件(standalone.xml或domain.xml)的日志子系统,启用Resteasy客户端的日志输出:

  1. 基础请求日志(含URL、方法、头信息)
    在<subsystem xmlns="urn:jboss:domain:logging:8.0">下的<loggers>节点中添加:
<logger category="org.jboss.resteasy.client.jaxrs">
    <level name="DEBUG"/>
</logger>
  1. 完整请求/响应日志(含请求体、响应体)
    如果需要获取重建请求的全部细节,添加TRACE级别的日志配置:
<logger category="org.jboss.resteasy.client.jaxrs.internal.ClientRequest">
    <level name="TRACE"/>
</logger>

配置完成后重启Wildfly,日志中会自动输出所有客户端发起的请求信息。

方案二:通过启动参数全局启用

无需修改配置文件,直接在Wildfly的启动脚本中添加系统属性:

  • Linux/macOS(standalone.sh):
    在启动命令中追加:
    -Dresteasy.client.log.enabled=true -Dresteasy.client.log.level=TRACE
    
  • Windows(standalone.bat):
    在启动命令中追加:
    -Dresteasy.client.log.enabled=true -Dresteasy.client.log.level=TRACE
    

该参数会让Resteasy客户端自动输出完整的请求日志,包含URL、HTTP方法、请求头、请求体等所有重建请求需要的信息。

可选:自定义日志格式

如果需要让outgoing请求的日志更易识别,可以调整日志格式,比如在Wildfly配置文件的<formatters>节点中添加自定义格式:

<pattern-formatter name="outgoing-request-pattern" pattern="%d{HH:mm:ss,SSS} %-5p [%c] - [OUTGOING REQUEST] %m%n"/>

然后将该格式关联到对应的logger:

<logger category="org.jboss.resteasy.client.jaxrs.internal.ClientRequest">
    <level name="TRACE"/>
    <handlers>
        <handler name="CONSOLE"/> <!-- 或你自定义的handler -->
    </handlers>
    <formatter name="outgoing-request-pattern"/>
</logger>

你的示例代码(无需修改)

import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Invocation;
import javax.ws.rs.core.Response;

import org.jboss.resteasy.client.jaxrs.ResteasyClient;
import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;


public class Main {
    
    public static void main(String[] args) {
        ResteasyClientBuilder rcb = (ResteasyClientBuilder) ClientBuilder.newBuilder();
        ResteasyClient resteasyClient = rcb.build();
        ResteasyWebTarget target = resteasyClient.target("https://api.api-ninjas.com/v1/loremipsum?paragraphs=1");
        Invocation.Builder builder = target.request();

        // 无需修改代码,通过配置即可记录请求
        Response response = builder.get();  
      
    }
}

内容的提问来源于stack exchange,提问作者Lucas Pottersky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 23:58:12