使用 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 版本之间的区别?