java - 是否可以在 JAX-RPC java 客户端中访问原始 SOA/XML 消息?

标签 java web-services jax-rpc

我正在尝试通过 JAX-RPC java 客户端访问 XML 响应。

我一直在研究 Axis 自定义处理程序,但看起来它们仅在服务端有用。

最佳答案

这里有一些代码可以返回 XML 响应负载。您可以直接从 AXIS Stub 类获取它,也可以从将其写入 MessageContext 的处理程序获取它。这是直接读取的:

private String getSOAPResponseXML(Object clientstub) {
    String returnValue = null;
    org.apache.axis.client.Stub stub = (org.apache.axis.client.Stub)clientstub;
    Call call = stub._getCall();
    if (call != null) {
        MessageContext ctx = call.getMessageContext();
        // If I registered a handler
        // returnValue = (String) ctx.getProperty( ClientHandler.SOAP_RESPONSE );

        // or use:
        try {
            Message msg = call.getResponseMessage();
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            // NOTE: If we never get a response (a request handler throws an uncaught error
            // this can cause a java.lang.NullPointerException
            msg.writeTo(baos);
            returnValue = baos.toString();
        } catch (java.io.IOException ex) {
            log.debug("Error in getSOAPResponseXML", ex);
        } catch (javax.xml.soap.SOAPException ex) {
            log.debug("Error in getSOAPResponseXML", ex);
        }
    }
    return returnValue;
} // getSOAPResponseXML

如果您需要处理程序,请告诉我。

关于java - 是否可以在 JAX-RPC java 客户端中访问原始 SOA/XML 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3842900/

相关文章:

java - 使用 JAX-RPC 客户端从 JAX-WS WebService 获取附件

Java 格式将 double 转换为字符串

java - 无法启动 Swing 计时器

java - UI 线程与其他线程之间的通信使用处理程序

java - 在功能上重写来自Optional的分配而不执行 "else"逻辑

c# - 以编程方式使用 wsdl 和 wsdl 解析创建代理

java - 使用 Apache Axis 和 WS-Security 的 WebService 客户端。未找到用户名安全 token

c# - 使用 .NET Framework 3.5 在 C# 中调用 Web API

web-services - Netbeans 6.9.1 中的 JAX-RPC 支持

java - 使用 JAX-RPC 时如何将错误请求放入死信队列?