2011-07-15 122 views

回答

3

對於基於SOAP的Web服務,使用WSClient。該插件是圍繞GroovyWS的包裝。引擎蓋下,Apache CXF正在那裏工作。

1

過去,我創建了一個腳本(grails create-script),它使用wsimport在java src目錄中創建POJO。每次腳本運行時,它都會刪除生成的目錄(如果它先存在),然後生成新文件。

我這樣做是因爲正在使用的API正在開發中,我想要一種簡單的方式來消耗最新,最好的功能時添加新功能。

0

Grails的3.x中,你可以使用插件中的build.gradle

compile 'com.github.groovy-wslite:groovy-wslite:1.1.2' 

然後導入添加到您的控制器像http://guides.grails.org/grails-soap/guide/index.html

import wslite.soap.* 
import wslite.soap.SOAPClient 
import wslite.soap.SOAPResponse 

,並在https://github.com/jwagenleitner/groovy-wslite可用的例子中使用

def client = new SOAPClient('http://www.holidaywebservice.com/Holidays/US/Dates/USHolidayDates.asmx') 
def response = client.send(SOAPAction:'http://www.27seconds.com/Holidays/US/Dates/GetMothersDay') { 
body { 
    GetMothersDay('xmlns':'http://www.27seconds.com/Holidays/US/Dates/') { 
     year(2011) 
    } 
} 
} 

assert "2011-05-08T00:00:00" == response.GetMothersDayResponse.GetMothersDayResult.text() 
assert 200 == response.httpResponse.statusCode 
assert "ASP.NET" == response.httpResponse.headers['X-Powered-By'] 

render (response.GetMothersDayResponse.GetMothersDayResult.text()) 
相關問題