2012-01-09 4 views
8

Webサービスをステージングサーバーにデプロイする際に、WSDLコントラクトが運用サイトのWSDLと比較して大きな変更があった場合に通知を受けるように設定したいと考えています。WSDL契約の急激な変化を検出するにはどうすればよいですか?

これを行うのに役立つツールやサービスはありますか?

Membrane WSDL comparerを試みたが、:)

+0

改訂しない変更としては何を定義しますか?既存のWSDL構成への変更は、それを使用するプログラムに影響する可能性があります。したがって、新しい機能の追加や、システム内のどのプログラムも使用していない既存の構造への変更(つまり、質問に答えるために入力できるコード部分)は、大きな変更ではありません。 –

+0

クライアントがサービスをどのように使用しているかによって、改ざんの定義が明確でないことがあります。しかし、私はそれが期待されます。新しい操作を追加するとクライアントが破られることはありませんが、操作/型/パラメーターの名前を変更すると変更が破棄されます。理想的には、ツールが契約の変更をリストすることができ、その変更が受け入れられるかどうかを判断することができます。全体的な目的は、誰かがWebサービスによって公開されていることを知らない型の名前を変更した場合など、契約の偶発的な変更を避けることです。 –

+0

@Ira私も[この質問](http://stackoverflow.com/questions/8786935/what-are-considered-non-breaking-or-backwards-compatible-changes-to-a-wsdl-contr)に尋ねたあなたのコメント。 –

答えて

3

最初にそれをしようとしたとき、これはjava.lang.StackOverflowErrorを投げました。私はそのようなツールを知らない。

「その他」の質問にも回答しました。そこに掲示されているガイドラインを見ると、私はあなた自身をロールすることが可能でなければならないと言います。

私は過去に同様の仕事をしました。 WSDLではなく、別の方言です。私のアプローチは、

  1. は通常のXMLとしてWSDL /スキーマをパース(彼らはすべてのXML方言自身の後にある)
  2. は、インメモリモデルを構築
  3. ルールを定義し、それらに
を適用する(スキーマはしかし注意が必要です)

構成要素の数が限られているため、WSDLの部分が簡単です。スキーマは難しいかもしれませんが、それでもやることはできません。

関連する問題