MarkupBuilder/XmlSlurperでSpring Webサービスを使用するのに成功しています。 WebServiceTemplateを使用して、指定されたUriへのWebサービスクライアントを作成し、MarkupBuilderで構築されたXML経由でリクエストを送信できます。
これは、ドキュメンテーションの成果物、コードの生成および生成コードの生成、jaxbバインディングに追加する注釈なし、データオブジェクトなしなど、WSDLをインターフェイスの中心的な記述として保持することに大きな利点があります。
私たちはドメインクラスを使用していません.Duck型の方法では、クライアントからJavaオブジェクトに相当するため、Webサービス呼び出しのXML結果を直接スラップして取得したGPathResultを使用します。ただし、Webインターフェイスはありません。あなたは、Webインターフェイスを使用している場合、私は、コマンドを作成します
def toXml(MarkupBuilder b) {
}
でオブジェクトのメソッド、または多分
myCommandObject as XML
は、あなたのWSDLのXSDスキーマによっては、動作します。この方法でGrailsのデータバインディングと検証を利用できます。
ビューのデータモデルでは、コマンドオブジェクト(互換性のあるXMLオブジェクト)のアヒル型を渡すだけで十分です。したがって、両方の方法をマーシャリングする必要はありません。
もう1つの注意点は、現在のバージョンのgrails spring-wsプラグインが古くなっていることです。私は、古いspring-security-coreクラスのためにgrails 2.0でうまくいくとは思っていません。良いことは、クライアントを構築するだけの場合は、プラグインがほとんど必要ないことです。最新のSpring Webサービスjarを含めて、WebServiceTemplate.sendToEndpointメソッドを使用してください。
ありがとうございます。私はXMLを酷使していましたが、コマンドオブジェクトの使用については調べていませんでした。私はそれを行ってあげるよ。 – BadgerBadgerBadger
だから私はそれがうまくいったと思いますか?答えを受け入れてくれてありがとう! – loteq
すごく時間がかかってしまいました。 SOのエチケットをまだ学んでいる。 – BadgerBadgerBadger