我正在做一些 Web 服务测试工作,所以必须在 Java 中创建一个 SOAP 请求。要使 SOAP 消息的某些部分自动化,只需更改几个字段,其余部分保持静态。所以我正在考虑创建一个 SOAP 模板,并将其加载到 Java 中。
不过,我无法弄清楚如何将该文件直接加载到Message
Java 中的对象中。
我指的主要来源:SAAJ 代码示例Request.java
中的部分
我正在做一些 Web 服务测试工作,所以必须在 Java 中创建一个 SOAP 请求。要使 SOAP 消息的某些部分自动化,只需更改几个字段,其余部分保持静态。所以我正在考虑创建一个 SOAP 模板,并将其加载到 Java 中。
不过,我无法弄清楚如何将该文件直接加载到Message
Java 中的对象中。
我指的主要来源:SAAJ 代码示例Request.java
中的部分
假设 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 为您生成代理对象,您的生活会轻松很多。然后您可以在这些对象上调用您的请求,就好像它们是本地方法一样。如果您有兴趣,这里有一个关于它的快速教程。
尝试使用SoapWS库,使用此库测试 SOAP 服务要容易得多: