2011-12-20 185 views

回答

1

我知道你問的關於一個插件的問題,但我從來沒有用過Grails-WS插件,所以我不能評論那裏。相反,如果存根與JAXB編組兼容,則可以使用Spring Web Services項目。您只需在BuildConfig.groovy中添加依賴項即可導入適當的罐子。

http://static.springsource.org/spring-ws/sites/2.0/reference/html/client.html

所以你剛纔定義一些JAXB編組/解組豆類和Web服務處理程序。你可以從上面的文檔中得到你想要的詳細信息,並且如果你指定了你自己的連接處理程序或攔截器,則定義超時和安全性。

myJaxb2Marshaller(org.springframework.oxm.jaxb.Jaxb2Marshaller) { 
    classesToBeBound = ['my.class.Class1','my.class.Class2'] 
} 

myWebServiceMessageFactory(org.springframework.ws.soap.saaj.SaajSoapMessageFactory) 

myWebServiceTemplate(org.springframework.ws.client.core.WebServiceTemplate, ref('myWebServiceMessageFactory')) { 
    marshaller = ref('myJaxb2Marshaller') 
    unmarshaller = ref('myJaxb2Marshaller') 
} 

在這一點上,你可以使用聖盃的依賴注入在你的Grails代碼使用WebServiceTemplate

class myService { 
    def myWebServiceTemplate 

    void myMethod { 
     ... 
     Class1 myRequestObject = new Class1(data:myData) 
     Class2 myResponseObject = myWebServiceTemplate.marshalSendAndReceive(mySoapEndpoint, myRequestObject) 
     ... 
    } 
} 
0

我會推薦使用Spring的方式。 畢竟你在grails中開發,所以maybie你不需要插件。 閱讀有關Remoting and webservices的第19.5.2章「使用JAX-RPC訪問Web服務」的Spring文檔。

不需要任何jar的存根。春天會爲你產生一切...

P.S. :我假設你知道如何在grails中聲明spring beans ...

+0

Web服務使用了100的WSDL,我寧願不定義每一個春天。 ..這真的看起來很麻煩.. – RyanLynch 2011-12-20 22:27:13

相關問題