2011-12-20 26 views
0

GrailsのためのいくつかのWebサービスプラグインがあることは知っていますが、その一部は維持されていないようです。私はwsdlから生成されたすべてのスタブを持つ瓶を持っており、今は統合を開始する必要があります。どのプラグインがこれに最も適していますか?また、WebサービスはRESTではなくSOAPを使用します。GrailsでWebサービスを使用する最も良い方法は何ですか?

答えて

1

私はあなたの質問を消費するためのプラグインについて尋ねましたが、私はGrails-WSプラグインそこ。代わりに、スタブがJAXBマーシャリングと互換性がある場合は、Spring Web Servicesプロジェクトを使用できます。適切なjarをインポートするには、BuildConfig.groovyに依存関係を追加するだけです。

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

だから、単にいくつかのJAXBマーシャラー/アンマーシャラー豆とWebサービス・ハンドラを定義します。上記のドキュメントから必要な詳細を得ることができ、独自の接続ハンドラまたはインターセプタを指定した場合のタイムアウトとセキュリティを定義できます。あなたはGrailsのコードでWebServiceTemplateを使用するために聖杯の依存性注入を使用することができ、その時点で

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') 
} 

class myService { 
    def myWebServiceTemplate 

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

私はSpring's wayを使用することをお勧めします。結局Grailsで開発しているので、プラグインは必要ありません。 Remoting and webservicesのSpringドキュメント、19.5.2「JAX-RPCを使用したWebサービスへのアクセス」を参照してください。

あなたのjarのスタブは必要ありません。春はあなたのためにすべてを生成します...

P.S. :私はあなたがgrailsで春の豆を宣言する方法を知っていると仮定します...

+0

Webサービスは100以上のWSDLを使用して、私はむしろ春にそれぞれ1を定義していないと思います。 ..これは本当に扱いにくいようです。 – RyanLynch

関連する問題