相关疑难解决方法(0)

如何在JAX-RS客户端中记录请求主体

我需要查看我的请求主体与客户端JAX-RS请求,以验证序列化是否正常,并重用请求测试客户端,如Postman.

我知道可以使用例如使用Jersey激活日志记录resource.addFilter(new com.sun.jersey.api.client.filter.LoggingFilter());.但是,我不直接使用Jersey或RESTEasy实现,而是通过JAX-RS API抽象:

final WebTarget target = 
        ClientBuilder.newBuilder().build().target("http://localhost:8080");
Run Code Online (Sandbox Code Playgroud)

如何在此处启用日志记录?


结果

来自@peeskillet + 这个片段的答案.

但是,有时close()来自代码片段的方法不会被JAX-RS实现调用(org.jboss.resteasy:resteasy-client-3.0.11.FINAL在本例中).

logging jax-rs servlet-filters

14
推荐指数
1
解决办法
3万
查看次数

记录jax-ws http请求和响应

我需要在JAX-WS WebService调用中记录完整的http请求和响应.对于请求,我需要请求标头和正文以及响应,响应标头和正文.

经过一番研究,我发现我可以通过该属性获取此信息:

-Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true
Run Code Online (Sandbox Code Playgroud)

并显示我需要的信息,但它将其转储到控制台,我需要将其存储在具有内部请求ID的数据库中.

我试图实现一个处理程序:

public class LoggingHandler implements SOAPHandler<SOAPMessageContext> {

    @Override
    public boolean handleMessage(SOAPMessageContext context) {
        Boolean outbound = (Boolean) context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
        if (outbound) {
            System.out.println("SOAP outbound!!!!!");
            Map<String, List<String>> responseHeaders = (Map<String, List<String>>) context
                    .get(SOAPMessageContext.HTTP_RESPONSE_HEADERS);
            try {
                String headers = getHeaders(responseHeaders);
                System.out.println(headers);
                String body = getBody(context.getMessage());
                System.out.println(body);
            } catch (Exception ex) {
                // TODO: What do I have to do in this case?
            }
        } else {
            System.out.println("SOAP inbound!!!!!");
            Map<String, List<String>> requestHeaders = (Map<String, List<String>>) context
                    .get(SOAPMessageContext.HTTP_REQUEST_HEADERS);
            try { …
Run Code Online (Sandbox Code Playgroud)

java logging jax-ws

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

logging ×2

java ×1

jax-rs ×1

jax-ws ×1

servlet-filters ×1