Groovy 可以成为 JAX-RPC 风格的 Web 服务的客户端吗?
显然,Groovy 可以轻松使用 Web 服务。它可以使用需要 JAX-RPC 而不是 JAX-WS 的 Web 服务吗?我应该使用旧版本的 Groovy 或其库来执行此操作吗?
Apparently, Groovy easily consumes web services. Can it consume a web service that needs JAX-RPC instead of JAX-WS? Should I use an older version of Groovy or its libraries to do so?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用 XML-RPC Web 服务确实很容易。您需要 Groovy XML-RPC 以及 Smack 库位于类路径中。
我编写了一些 groovy 脚本来与我们的 Atlassian Confluence wiki 配合使用,这里有一个简短的示例来检索使用 XML-RPC 的 wiki 页面:
您可以使用
XMLRPCServerProxy
访问 XML-RPC 服务。如果您的服务需要复杂的参数作为参数或返回参数,则这些参数将表示为 Groovy 映射,其中属性名称作为键,其值作为相应的值。在上面的脚本中,服务getPage
返回一个 Page 对象,它是一个地图,但由于您可以使用 Groovy 中的点表示法直接访问地图的键,page.content 与 page.get("content") 相同。
It's really easy to consume XML-RPC web services. You need the Groovy XML-RPC as well as the Smack library in your classpath.
I wrote some groovy scripts to work with our Atlassian Confluence wiki and here's a short example to retrieve a wiki page using XML-RPC:
You use the
XMLRPCServerProxy
to access the XML-RPC services. If your services require complex parameters as parameters or return one, these are represented as Groovy maps, with the attribute name as key and it's value as the corresponding value. In the script above, the servicegetPage
returns a Page object, which is a map, but as you can directly access a map's key using the dot-notation in Groovy,page.content
is the same aspage.get("content")
.“它可以使用需要 JAX-RPC 而不是 JAX-WS 的 Web 服务吗”是什么意思?您认为 Groovy 方面有何不同?您是否尝试按照记录调用该 Web 服务
:你有什么特别的错误吗?
What do you mean by "can it consume a web service that needs JAX-RPC instead of JAX-WS"? What differences do you expect on the Groovy side? Did you try to call that web service as documented:
Do you get any particular error?
由于 Groovy 可以使用已编译的 Java 类,因此有时访问基于 SOAP 的 Web 服务的最简单方法就是生成存根并编写使用它们的 Groovy 客户端。使用“wsimport”工具 (JAX-WS) 或 wsdl2java (JAX-RPC) 生成存根,并像往常一样编写 Groovy 类。
Since Groovy can work with compiled Java classes, sometimes the easiest way to access a SOAP-based web service is to just generate the stubs and write a Groovy client that uses them. Use your "wsimport" tool (JAX-WS) or wsdl2java (JAX-RPC) to generate the stubs, and write your Groovy class as usual.