私はgroovywsを避けたいと思います。いろいろ調べた結果、Spring Web サービスとコントラクト駆動の Web サービスを使用するソリューションを最終的に選択しました。
クライアントは、soap 要求 XML を生成する toXml() メソッドを使用してコマンド オブジェクトをインスタンス化します。次に、WebServiceTemplate を使用して sendToEndpoint を実行します。
サーバーには、Spring Web サービス エンドポイントを使用します。着信 xml の解析は子供の遊びです。XML をオブジェクトにマーシャリングする必要はありません。XmlSlurper から生成される GPathResult は完全に管理可能です。私たちのサーバーは grails 上で実行されるため、springws grails プラグインを利用して、エンドポイントの作成をさらに簡単にしました。
ただし、注意点が 1 つあります。grails の springws プラグインは古くなっています。Spring Web サービスは現在バージョン 2.x で、springws プラグインには 1.4.xi が付属しています。しかし、プラグインなしでも非常に使いやすく、プラグインを新しいAPIにアップグレードすることは難しくないと思います。
また、MTOM を実行したい場合は、メッセージ処理を深く掘り下げる必要があるため、springws はもう少し複雑になります。Spring Web サービスを使用してかなり高度な ws-security を実行できましたが、問題ありませんでした。
それ以外の場合は、jax-ws などに固執したい場合は、cxf (MTOM を適切に処理) を使用します。すべてのプロキシと pojo が動的に生成されるため、オーバーヘッドはおそらく高くなります。また、契約に基づくものではないことも、私たちにとって大きなプラスです。
http://predic8.com/groovy-web-services-jax-ws.htm
http://cxf.apache.org/docs/how-do-i-develop-a-client.html