【问题标题】:How to load a SOAP template to a SOAP message in Java?如何将 SOAP 模板加载到 Java 中的 SOAP 消息中?
【发布时间】:2013-04-04 06:47:17
【问题描述】:
我正在做一些 Web 服务测试工作,因此必须在 Java 中创建一个 SOAP 请求。要自动化 SOAP 消息的某些部分,只需更改几个字段,其余部分保持静态。所以我正在考虑创建一个 SOAP 模板,并将其加载到 Java。
不过,我无法弄清楚如何将该文件直接加载到 Java 中的 Message 对象中。
我指的主要来源:
SAAJ code example 中的 Request.java 部分
【问题讨论】:
标签:
java
xml
web-services
soap
【解决方案1】:
假设 template.xml 包含你的请求数据,你可以这样传递:
SOAPPart soapPart = message.getSOAPPart();
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dbFactory.newDocumentBuilder();
Document document = builder.parse("file:///template.xml");
DOMSource domSource = new DOMSource(document);
soapPart.setContent(domSource);
如果您不需要使用 SAAJ,那么如果您使用 JAX-WS 实用程序从 WSDL 为您生成代理对象,您的生活会轻松很多。然后,您可以在这些对象上调用您的请求,就好像它们是本地方法一样。如果您有兴趣,这里有一个关于它的快速tutorial。