Web services Groovy能成为JAX-RPC风格web服务的客户端吗?

Web services Groovy能成为JAX-RPC风格web服务的客户端吗?,web-services,groovy,jax-ws,jax-rpc,Web Services,Groovy,Jax Ws,Jax Rpc,显然,Groovy很容易使用web服务。它可以使用需要JAX-RPC而不是JAX-WS的web服务吗?我是否应该使用较旧版本的Groovy或其库来执行此操作?您所说的“它可以使用需要JAX-RPC而不是JAX-WS的web服务”是什么意思?您希望Groovy方面有什么不同?您是否尝试将该web服务称为: 您是否遇到任何特殊错误?使用XML-RPC web服务非常容易。您需要在类路径中包含库和库 我编写了一些groovy脚本来处理我们的wiki,下面是一个使用XML-RPC检索wiki页面的简短示

显然,Groovy很容易使用web服务。它可以使用需要JAX-RPC而不是JAX-WS的web服务吗?我是否应该使用较旧版本的Groovy或其库来执行此操作?

您所说的“它可以使用需要JAX-RPC而不是JAX-WS的web服务”是什么意思?您希望Groovy方面有什么不同?您是否尝试将该web服务称为:


您是否遇到任何特殊错误?

使用XML-RPC web服务非常容易。您需要在类路径中包含库和库

我编写了一些groovy脚本来处理我们的wiki,下面是一个使用XML-RPC检索wiki页面的简短示例:

import groovy.net.xmlrpc.*

def c = new XMLRPCServerProxy("http://host:port/rpc/xmlrpc")
def token = c.confluence1.login("username","password")

def page = c.confluence1.getPage(token, "SPACE", "pagename")
println page.content

c.confluence1.logout(token);

您可以使用
XMLRPCServerProxy
访问XML-RPC服务。如果您的服务需要复杂的参数作为参数或返回一个参数,那么这些参数将表示为Groovy映射,属性名称作为键,属性值作为相应的值。在上面的脚本中,服务
getPage
返回一个页面对象,它是一个映射,但是由于您可以在Groovy中使用点符号直接访问映射的键,
Page.content
Page.get(“content”)
相同,因为Groovy可以使用编译的Java类,有时候,访问基于SOAP的web服务最简单的方法就是生成存根并编写使用它们的Groovy客户机。使用“wsimport”工具(JAX-WS)或wsdl2java(JAX-RPC)生成存根,并像往常一样编写Groovy类。

Hi,Pascal!正如你所建议的,我在NetBeans。使用向导构建WS-client,并且必须添加JAX-RPC库。我不知道Java,也不知道(目前)如何用我的数据调用该客户机,我看到ws客户机在Groovy中看起来很简单,NetBeans允许我添加Groovy类或脚本。但是,当我向项目中添加一个简单的Groovy脚本时,我不知道如何查看输出,甚至不知道它是否运行。当我开始一个新项目时,它希望我安装Grails&我希望我不需要的东西。超级菜鸟,我知道…嗨,保罗!对不起,我没有马上认出你:)事实上,我不知道你为什么要添加JAX-RPC库。我最初的建议是实现一个JAX-WS客户机(稍微简单一点),AFAIK Netbeans包含了实现这一点所需的一切。也许你应该为此提出另一个问题,讨论你的问题会更容易一些。我可能需要JAX-RPC库,因为我无意中举了一个小例子,说明人们为什么寻求SOAP的替代品。显然,WDSL有多种风格(搜索“ibm风格的wsdl”以获得模糊的细节)。我在Groovy中看到了各种诱人的简单ws客户机示例,但尽管在Groovy控制台和/或IntelliJ社区测试版上花了几个小时的时间,但都没有成功:(.也许我正在努力成为Groovy。我想你误解了绑定样式(和使用)和“库”之类的东西您将需要。就个人而言,我更喜欢使用document/literal样式来实现更好的互操作性,而“wrapped”约定用于类似RPC的编程体验(请参阅)。然而,选择rcp/literal并不意味着您必须使用JAX-RPC,在您的情况下,我更喜欢使用JAX-WS(和Java)并使用注释来避开所有这些细节。很可能。NetBeans向导看到了我服务的WSDL,并说我需要JAX-RPC。这只带鼠标的猴子不知道怎么争辩:-)。谢谢Chris,这看起来很酷,但我可能支持你几章(书?)。在Google向我展示Jabber RPC之前,我从未想过XMPP库会与XML-RPC相关。我的头已经痛了!实际上,我并不太关心Groovy XMLRPC模块与XMPP库之间存在依赖关系这一事实。我只是尝试了一个例子,它奏效了。
import groovy.net.xmlrpc.*

def c = new XMLRPCServerProxy("http://host:port/rpc/xmlrpc")
def token = c.confluence1.login("username","password")

def page = c.confluence1.getPage(token, "SPACE", "pagename")
println page.content

c.confluence1.logout(token);