2010-07-07 21 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的絕佳替代方案