1

我只想知道有什么方法可以在 Play 框架中使用 SOAP Web 服务,特别是 1.xx 版

谢谢

4

2 回答 2

2

其他答案当然是有效的,但 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。

于 2013-03-27T10:51:03.440 回答
1

将 play 用作 SOAP 使用者应该很简单:包含您选择的 soap 库,从 wsdl 生成存根,调用端点。另一种选择是调用 URL 并使用 Xpath 来解析它的信封。

于 2013-03-27T07:44:11.250 回答