2012-01-09 12 views
8

Web servislerimizi evreleme sunucumuza dağıtırken, WSDL sözleşmelerinde üretim sitemizin WSDL'sini karşılaştırarak herhangi bir değişiklik olduğunda herhangi bir değişiklik yapılacağını bildiren bir kurulum yapmak isteriz.WSDL sözleşmelerinde kırılma değişiklikleri nasıl algılanır?

Bunu yapmanıza yardımcı olabilecek araçlar veya hizmetler var mı? :) İlk

+0

Kesin olmayan bir değişiklik olarak ne tanımlarsınız? Mevcut WSDL yapılarında yapılacak herhangi bir değişikliğin, onu kullanan herhangi bir program üzerinde bir etkisi olması muhtemeldir. Bu nedenle, yeni bir fonksiyonun eklenmesi ve/veya mevcut yapılarda bir değişiklik yapılmaması, sisteminizde herhangi bir program kullanılmamasına neden olur (bu soruya cevap vermek için sağlayabileceğiniz girdinin kod kısmıdır)? –

+0

Belki de, istemcinin hizmeti nasıl kullandığını bağlı olarak değişimin kırılmasının tanımı açık değildir. Ancak, örneğin yeni bir işlem eklemek herhangi bir istemciyi kırmaz, ancak işlemlerin/türlerin/parametrelerin yeniden adlandırılması değişiklikleri değiştirir. İdeal olarak, bir araç bir sözleşmedeki değişiklikleri listeleyebilir, ardından değişikliklerin kabul edilebilir olup olmadığına karar verebiliriz. Genel amaç, birisinin web hizmeti ile karşılaştığını bilmeyen bir türün yeniden adlandırılması gibi, sözleşmedeki yanlışlıkla yapılan değişikliklerden kaçınmaktır. –

+0

@Ira [Bu soru] (http://stackoverflow.com/questions/8786935/what-are-considered-non-breaking-or-backwards-compatible-changes-to-a-wsdl-contr) aşağıdaki soruları da sordum. senin yorumun. –

cevap

3

dışarı çalışırken

çalıştı Membrane WSDL comparer ama bu java.lang.StackOverflowError attı; Bu tür araçlardan haberdar değilim.

"Diğer" sorusunu da yanıtladı. Orada yayınlanan yönergelere baktığımızda, kendi yuvarlanmanızın mümkün olacağını söyleyebilirim (Olası, kolay değil :).

Geçmişte benzer işler yaptım; WSDL için değil, başka bir lehçe için de olsa. Benim yaklaşımım;

  1. düzenli XML olarak WSDL/Şeması ayrıştırma (Hepsi XML lehçelerde kendilerini peşinde)
  2. bir bellek içi modelini kurmak
  3. kurallar tanımlayın ve onlara
uygulamak (Şema olsa yanıltıcı olabilir)

Sınırlı sayıda yapı olduğundan WSDL kısmı daha kolaydır; Şema zor olurdu ama yine de sanırım.