2012-05-16 17 views
13

リモート呼び出しを行うのにSOAPクライアントが必要ですが、私はGroovyのnoobです。 Groovy documentationによると、標準のGroovy SOAPライブラリは推奨されていません。代わりに、文書によって、新しいライブラリ(GroovyWS)が表示されます。groovyで使用する標準SOAPライブラリは何ですか?

残念ながら、GroovyWSには、プロジェクトが休止していることを示す警告が表示され、Groovy WSLiteが表示されます。

実際にはまだGroovy WSLiteが活発に開発されているようですが、前の2つのライブラリに比べてGroovy-ishはあまりありません。 wsliteは誰もが使っているものですか?

+0

この質問を生み出したプロジェクトの私の要求が変わったので、実際に@ john-wagenleitnerが提案したライブラリを試してみませんでしたが、彼の答えは私の質問に対する答えとして最も完全だったようでした。 お返事ありがとうございます! – matmer

答えて

11

私は、プロジェクトでGroovyのSOAPクライアントライブラリとして使用されており、意思決定は、おそらくAPIは/(で好まユーザーにアプローチしていた働いて、1どちらの一つであった、あなたがGroovyWSgroovy-wslite(およびHTTP Builder)の両方を見つけるだろうと思いますその順序)。

私が助言するのは、それが提供するAPIが好きで、WSDLドキュメントをプロキシし、対話する必要があるサービスで動作するかどうかを確認することです。 SOAPの世界では事はあまり変わっていないので、最近更新されたことについてあまり心配する必要はありません。それがうまくいくなら、あなたは終わってしまいます。もしあなたがすぐに私のために助けを見つけることができないいくつかの問題を経験するなら、私は代替案を試してみます。

groovy-wslite(免責事項:私は著者です)は、WSDLの解析/プロキシーの利便性をトレードする軽量(依存関係の)代替を提供することを目的としています。 CXFのような基盤となるJavaフレームワークの内部を詳しく調べることができます。あるものは、このようなフレームワークの上に構築されたライブラリの追加機能を持つことを好む一方で、他のアプローチの単純さを好むライブラリもあります。

Groovyを非常に優れたものにすることは、Javaとの統合がいかに簡単かということです。したがって、他の人がすでに指摘しているように、Spring WS、CXF、JAX-WSなどのJava Webサービスクライアントと簡単に統合することができます。

2

私はgroovywsから離れていると思います。 私は最終的に春のWebサービスと契約駆動のWebサービスを使用するソリューションを選択しました。

クライアントはsoap要求XMLを生成するtoXml()メソッドを使用してコマンドオブジェクトをインスタンス化します。次に、WebServiceTemplateを使用してsendToEndpointを呼び出します。

サーバーでは、Spring Webサービスのエンドポイントを使用します。着信xmlの解析は子どもの遊びであり、XmlSlurperに起因するGPathResultは完全に管理可能であるため、XMLをオブジェクトにマーシャリングする必要はありません。私たちのサーバーはgrailsの上を走っていましたので、springws grailsプラグインを利用して、エンドポイントの作成をさらに容易にしました。

ただし、1つの注意点があります。 grails用のspringwsプラグインは古くなっています。 Spring Webサービスはバージョン2.xになり、springwsプラグインは1.4.xと思います。しかし、プラグインなしで使うのはとても簡単ですが、プラグインを新しいAPIにアップグレードするのは難しくありません。

また、MTOMを実行したい場合は、メッセージハンドリングを詳しく調べる必要があるため、springwsは少し複雑になります。私は春のWebサービスでかなり高度なセキュリティセキュリティを実装できましたが、問題はありませんでした。

それ以外の場合、jax-wsなどを使用したい場合は、cxf(MTOMをうまく処理)を使用します。 動的に生成されたすべてのプロキシとポーズが原因で、オーバーヒアがおそらく高くなります。 また、契約駆動型ではありません。これは私にとって大きなプラスです。

http://predic8.com/groovy-web-services-jax-ws.htm

http://cxf.apache.org/docs/how-do-i-develop-a-client.html

+0

FWIW、4年後、SOAPから移行すると、残りのWebサービスクライアントのために、Groovy wsliteを試してみましょう。サーバーのエンドポイントを構築するには、フィールドを再検討する必要があります。私の答えは2012年の文脈で取ってください。 – loteq

0

あなたは宿題のyourslefを行っているように見えます! Groovy WS Liteは現在動作しているようです。 Groovyを使ってspring-wsの動作を見たい場合は、ここではgithubで作成したtest suiteプロジェクトです。

関連する問題