gpt4 book ai didi

java - 如何处理从 Netbeans 中的 WSDL 文件生成的 SOAP 调用

转载 作者:行者123 更新时间:2023-11-30 04:54:03 36 4
gpt4 key购买 nike

我刚刚开始使用 Java,但我的老板正在插入这一点。我已经获取了 WSDL 文件,并在 Netbeans 中生成了一个 Web 服务和一个 Web 客户端。另外,我已将新服务拖到我的客户端中,并确保代码有效。但现在我有一个问题。如何处理结果?我的 JSP 中的代码如下所示:

try {
Soap.PDFSignatureServiceService service = new Soap.PDFSignatureServiceService();
javax.xml.namespace.QName portQName = new javax.xml.namespace.QName("http://external.ltc.com/", "PDFSignatureServicePort");
String req = "<getTimestamp xmlns=\"http://external.ltc.com/\"><msisdn>ENTER VALUE</msisdn></getTimestamp>";
javax.xml.ws.Dispatch<javax.xml.transform.Source> sourceDispatch = null;
sourceDispatch = service.createDispatch(portQName, javax.xml.transform.Source.class, javax.xml.ws.Service.Mode.PAYLOAD);

javax.xml.transform.Source result = sourceDispatch.invoke(new javax.xml.transform.stream.StreamSource(new java.io.StringReader(req)));



out.print(result.toString());

} catch (Exception ex) {
out.print(ex.getMessage());
}

代码有效,但打印出来的是:com.sun.xml.ws.util.xml.StAXSource@90fe8e。我到底该怎么办?我期待的是 SOAP 消息或某种整数。我如何从这里到达某个地方?

谢谢!

最佳答案

您在这里所做的是创建一个动态客户端,实际上您正在有效负载级别上工作,而不是在 SOAP 消息级别上工作。

对于 SOAP 级别,您必须执行以下操作:

Dispatch<SOAPMessage> dispatch

您的情况的结果是响应的 XML 有效负载。
例如,您可以将其转换为字符串并查看它:

TransformerFactory factory = TransformerFactory.newInstance();  
Transformer transformer = factory.newTransformer();
StringWriter writer = new StringWriter();
Result stringOut = new StreamResult(writer);
transformer.transform(result, stringOut);
writer.close();
System.out.println(writer.toString());

或者将其转换为XML节点:

TransformerFactory factory = TransformerFactory.newInstance();  
Transformer transformer = factory.newTransformer();
DOMResult domResult = new DOMResult();
transformer.transform(result, domResult);
rootNode = domResult.getNode();

免责声明:甚至没有尝试编译代码

关于java - 如何处理从 Netbeans 中的 WSDL 文件生成的 SOAP 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9128619/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com