java - 访问 JAX-WS 调度响应的内容

标签 java web-services jax-ws

我正在尝试使用 JAX-WS 访问 Web 服务:

Dispatch<Source> sourceDispatch = null;
sourceDispatch = service.createDispatch(portQName, Source.class, Service.Mode.PAYLOAD);
Source result = sourceDispatch.invoke(new StreamSource(new StringReader(req)));
System.out.println(sourceToXMLString(result));

哪里:

private static String sourceToXMLString(Source result) {
    String xmlResult = null;
    try {
        TransformerFactory factory = TransformerFactory.newInstance();
        Transformer transformer = factory.newTransformer();
        transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
        transformer.setOutputProperty(OutputKeys.METHOD, "xml");
        //transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
        OutputStream out = new ByteArrayOutputStream();
        StreamResult streamResult = new StreamResult();
        streamResult.setOutputStream(out);
        transformer.transform(result, streamResult);
        xmlResult = streamResult.getOutputStream().toString();
    } catch (TransformerException e) {
        e.printStackTrace();
    }
    return xmlResult;
}

访问响应内容的正确方法是什么,例如。 获取响应中特定元素的内容

所有可用的示例只打印完整的 XML 响应:(

最佳答案

尝试将 Transformer#transform() 与 DOMResult 一起使用,然后使用生成的节点。

private static void sourceToXML(Source result) {
    Node rootNode= null;
    try {
        TransformerFactory factory = TransformerFactory.newInstance();
        Transformer transformer = factory.newTransformer();
        DOMResult domResult = new DOMResult();
        transformer.transform(result, domResult );
        rootNode = domResult.getNode()
    } catch (TransformerException e) {
        e.printStackTrace();
    }
    // Process rootNode here
}

关于java - 访问 JAX-WS 调度响应的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/578431/

相关文章:

java - 正则表达式以 "ATG"开头,以 "TAG, TAA orTGA"结尾,但中间不包含 "ATG"和 "TAG, TAA or TGA"

java - 如何限制用户功能

javascript - f.call(null,x) 与 f(x) 速度

java - 监控多个 java web 应用程序和服务

java - 在服务器请求方法中获取并保存 SOAP 传入请求 (XML) ?没有处理程序

java - 在 HANA 试用账户中使用 Node JS 模块

web-services - 将 Spark RDD 上传到 REST webservice POST 方法

wsdl - JBoss 7.1 JAX-WS Web 服务背后的反向代理、https 到 http 转换

wsdl - JAX-WS 从 jar 加载 WSDL

java - Spring Boot Raw WebSocket 设置主体