我只想知道有什么方法可以在 Play 框架中使用 SOAP Web 服务,特别是 1.xx 版
谢谢
其他答案当然是有效的,但 Play 为这类东西提供了一些方便的类。不过,您将需要手动解析响应。从课堂开始WS
。它可用于发布/获取或其他任何服务。例如,我将它用于 SOAP 请求和 REST 调用。
例子:
HttpResponse httpResponse = null;
String username = "";
String password = "";
String url = "";
String postBody = "";
try {
httpResponse = WS.url(url)
.authenticate(username, password)
.setHeader("Content-Type", "text/xml; charset=UTF-8")
.setHeader("SOAPAction", "")
.body(postBody).post();
Document document = httpResponse.getXml();
String value = XPath.selectText("//value", document);
Node node = XPath.selectNode("//node", document);
// Do things with the nodes, value and so on
} catch (Exception e) {
Logger.error("Do something with the connection error: %s", e);
}
如您所见,我使用XPath
该类来解析返回的Document
. 它提供了各种有用的方法来遍历 Document。
将 play 用作 SOAP 使用者应该很简单:包含您选择的 soap 库,从 wsdl 生成存根,调用端点。另一种选择是调用 URL 并使用 Xpath 来解析它的信封。