2010-07-07 60 views
4

我在尝试从Groovy脚本使用Web服务时遇到了一些问题。我正在使用WSClient lib。Groovy脚本使用Web服务的问题

如果我执行张贴在常规的网站例如:

@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: Created classes: javac: no source files Usage: javac use -help for a list of possible options 07-jul-2010 9:55:57 org.apache.cxf.endpoint.dynamic.DynamicClientFactory createC lient GRAVE: Could not compile java files for http://xxx:8080/x/services/xxx?wsdl . Caught: groovyx.net.ws.exceptions.InvokeException: java.lang.NullPointerExceptio n at groovy-ws.run(groovy-ws.groovy:13)

的代码是完全相同(除了与一个内部服务器相关的wsdl url)。我发现它们之间的主要区别在于第二个wsdl是RPC风格,而第一个不是。我读过使用WSClient lib从groovy中使用RPC类似web服务的一些问题。 ¿是否有人知道如何通过WSClient使用RPC webservices? ¿请问有人能给我启发吗?

非常感谢你

回答

0

不要使用WSClient是我可以给你的最佳答案。对于除简单服务之外的任何事情,我发现WSClient不能正常工作。而是使用您最舒适的基于Java的Web服务客户端,并从Groovy中调用它。

1

GroovyWS似乎有一个错误,在他们的JIRA中记录为here

这是目前尚未解决的,并于2010

我个人越来越具有比简单的示例服务等,任何使用Groovy 1.8.0同样的错误加入,GroovyWS 0.5.2

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