从groovy脚本消耗Web服务的问题

时间:2010-07-07 08:47:21

标签: groovy web-services

我在尝试从groovy脚本中使用Web服务时遇到了一些问题。我正在使用WSClient库。

如果我执行在groovy网站上发布的示例:

@Grab(group='org.codehaus.groovy.modules', module='groovyws', version='0.5.2')
import groovyx.net.ws.WSClient

proxy = new WSClient("http://www.w3schools.com/webservices/tempconvert.asmx?WSDL", this.class.classLoader)
proxy.initialize()
result = proxy.CelsiusToFahrenheit(0)
println "You are probably freezing at ${result} degrees Farhenheit"

工作正常,但是一旦我尝试使用其他服务,它就会崩溃并出现此错误:

  

INFO:创建的类:javac:no   源文件用法:javac     使用-help获取列表   可能的选择07-jul-2010   9点55分57秒   org.apache.cxf.endpoint.dynamic.DynamicClientFactory   createC lient GRAVE:无法编译   http://xxx:8080/x/services/xxx?wsdl的java文件。   抓住:   groovyx.net.ws.exceptions.InvokeException:   java.lang.NullPointerExceptio n           在groovy-ws.run(groovy-ws.groovy:13)

代码完全相同(除了与一个内部服务器相对应的wsdl url)。我发现它们之间的主要区别在于第二个wsdl是RPC样式而第一个不是。我已经读过使用WSClient lib从groovy中使用RPC之类的Web服务有一些问题。 ¿有没有人知道如何使用WSClient来使用类似Web服务的RPC? ¿有人可以开导我吗?

非常感谢

2 个答案:

答案 0 :(得分:1)

GroovyWS中似乎存在一个错误,在他们的JIRA上记录了here

目前尚未解决,并于2010年添加。

我个人在使用Groovy 1.8.0,GroovyWS 0.5.2

之外的其他任何事情上都遇到了同样的错误。

希望有人能找到问题并修复它 - WSClient绝对可以替代传统的CXF / JAXB

答案 1 :(得分:0)

不使用WSClient是我能给你的最佳答案。除了简单的服务,我发现WSClient不能正常工作。而是使用您最熟悉的基于Java的Web服务客户端,并从Groovy中调用它。