使用 Play Framework 1.2.5 访问 Web 服务

Posted

技术标签:

【中文标题】使用 Play Framework 1.2.5 访问 Web 服务【英文标题】:Accessing Web Service using Play Framework 1.2.5 【发布时间】:2013-01-28 11:51:33 【问题描述】:

我在 Eclipse IDE 的应用程序中使用 Play framework 1.2.5。我需要访问使用 IBM JAX-RPC 构建的 Web 服务。我有需要在我的应用程序中访问的 Web 服务的 wsdl 文件。

对于普通的 Java EE 应用程序,我曾经将 WSDL 粘贴到我的工作区中,通过右键单击 WSDL 文件 => 生成客户端选项生成文件,即在 Eclipse IDE 的帮助下生成文件。

我不确定如何使用 Play 框架访问 WSDL。

我想知道:

1) 将 WSDL 文件粘贴到我的工作区的什么位置?

2) 在 Play 框架中如何生成客户端(即使我们在 play 框架中是否需要这个也不确定)并访问服务方法?

3) 访问服务方法需要任何其他设置吗?

请让我知道这件事。

问候,

【问题讨论】:

【参考方案1】:

简单的方法:

使用 Play! 的内置 play.libs.WS(链接 #2 和 #3)。您必须自己创建原始 HTTP 请求,并自己解析来自服务器的 XML 结果。当然,如果 Web 服务接口很复杂,这可能会成为一项复杂的任务。

您最好create a JAX-RPC client based on your WSDL,并在您的 Play 中使用它!申请。

【讨论】:

非常感谢您的回复。如果我使用第一种方法,即使用 Play!的内置 play.libs.WS 那么在哪里放置 WSDL 文件以及如何访问它?在这种情况下,我需要生成客户端吗?对于第二种方法,如何从播放框架中使用它?您能否以描述性的方式解释这两种方式,以便我继续进行? Web 服务接口没有那么复杂,我更喜欢第一种方法。到目前为止,我还没有尝试解析请求/响应,但很想尝试一下。我没有得到任何示例代码,因此需要一个可以解决的示例代码。考虑 Web 服务接口包含一个 sum 方法,该方法将接受两个 integer 参数并返回一个 String。您可以为此发布示例代码吗?到目前为止,我在使用这个框架时缺少示例代码:(请帮忙,以便我可以挖掘。 我在回答中更新了 play.libs.WS 的 javadoc 链接。之前的网址是错误的。该页面包含两个示例。 感谢您的链接。看着它,我可以理解不需要将 WSDL 文件粘贴到 workspace 中,我只需要传递服务的 URL。但无法理解如何传递方法名称(我需要调用以获取结果的服务接口中的方法)和该方法将接受以生成响应的参数?请让我知道这件事。 我添加了一个链接 #3,它指向 2010 年写的一篇博客文章。您应该能够重写该文章中的代码以满足您的需要。

以上是关于使用 Play Framework 1.2.5 访问 Web 服务的主要内容,如果未能解决你的问题,请参考以下文章

使用 Play Framework 1.2.5 访问 Web 服务

使用 Play Framework 1.2.5 自定义验证 Map<Locale, String>

与 Play Framework 1.2.5 JPA 的多对多关系

Play Framework 1.2.5.1 和 1.2.6 版本之间的区别?

如何在 play framework 1.2.5 中验证 REST

Play Framework 1.2.5 - 添加到 <script> 标签