Axis:记录 SOAP http 请求和响应

发布于 2024-11-04 02:25:48 字数 1228 浏览 3 评论 0原文

我正在与 Axis 合作构建 SOAP 客户端。我想在某处打印完整的http请求和响应。我设法创建了打印 SOAP 信封的处理程序。我怎样才能扩展它来打印完整的http?

public class CustomMessageHandler extends GenericHandler {

    HandlerInfo hi;

    public void init(HandlerInfo info) {
        hi = info;
        System.out.println("CustomMessageHandler initialized");
    }

    public QName[] getHeaders() {
        return hi.getHeaders();
    }

    public boolean handleRequest(MessageContext context) {
        try {
            SOAPMessageContext smc = (SOAPMessageContext) context;
            SOAPMessage msg = smc.getMessage();
            System.out.println("request:");
            msg.writeTo(System.out);
            System.out.println("");

        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return true;
    }

    public boolean handleResponse(MessageContext context) {
        try {
            SOAPMessageContext smc = (SOAPMessageContext) context;
            SOAPMessage msg = smc.getMessage();
            System.out.println("response:");
            msg.writeTo(System.out);
            System.out.println("");

        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return true;
    }
}

I'm working with Axis to build an SOAP client. I'd like to print somewhere complete http request and response. I managed to create handler, which prints SOAP envelopes. How can I extend it to print complete http?

public class CustomMessageHandler extends GenericHandler {

    HandlerInfo hi;

    public void init(HandlerInfo info) {
        hi = info;
        System.out.println("CustomMessageHandler initialized");
    }

    public QName[] getHeaders() {
        return hi.getHeaders();
    }

    public boolean handleRequest(MessageContext context) {
        try {
            SOAPMessageContext smc = (SOAPMessageContext) context;
            SOAPMessage msg = smc.getMessage();
            System.out.println("request:");
            msg.writeTo(System.out);
            System.out.println("");

        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return true;
    }

    public boolean handleResponse(MessageContext context) {
        try {
            SOAPMessageContext smc = (SOAPMessageContext) context;
            SOAPMessage msg = smc.getMessage();
            System.out.println("response:");
            msg.writeTo(System.out);
            System.out.println("");

        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return true;
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

奢欲 2024-11-11 02:25:48

此阶段的请求和响应处理程序可能不会有完整的请求和响应。 Axis Servlet 或 HTTP 处理程序可能会执行此操作。
是否尝试过编写过滤器并记录完整的请求和响应?

The Request and Response handler at this stage probably will not have a complete Request and response. Probably the Axis Servlet will do it or a HTTP Handler.
Have tried writing a filter and log the complete request and response ?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文