2012-01-09 9 views
8

Ci piacerebbe avere una configurazione in cui quando si distribuiscono i nostri servizi Web al nostro server di gestione temporanea, verremmo informati in caso di eventuali modifiche irrisolte nei contratti WSDL confrontandole con il WSDL del nostro sito di produzione.Come rilevare i cambiamenti improvvisi nei contratti WSDL?

Esistono strumenti o servizi che possono essere d'aiuto?

provato Membrane WSDL comparer ma questo ha gettato java.lang.StackOverflowError quando si cerca fuori :)

+0

Cosa si definisce come un cambiamento senza interruzioni? È probabile che qualsiasi modifica ai costrutti WSDL esistenti abbia un effetto su qualsiasi programma che lo utilizza. Quindi un cambiamento ininterrotto è l'aggiunta di una nuova funzione, e/o una modifica a strutture esistenti non usate alcun programma nel vostro sistema (è quella parte di codice dell'ingresso che potete fornire per rispondere alla domanda)? –

+0

Forse la definizione di rottura del cambiamento non è chiara in quanto dipende da come il cliente sta usando il servizio. Tuttavia, mi aspetto che, ad es. l'aggiunta di una nuova operazione non interromperà alcun client, ma la ridenominazione di operazioni/tipi/parametri interromperà le modifiche. Idealmente uno strumento potrebbe elencare le modifiche a un contratto, quindi potremmo decidere se le modifiche sono accettabili. Lo scopo generale è di evitare di rilasciare modifiche accidentali al contratto, come se qualcuno avesse rinominato un tipo non sapendo che era esposto dal servizio web. –

+0

@Ira Ho anche chiesto [questa domanda] (http://stackoverflow.com/questions/8786935/what-are-considered-non-breaking-or-backback-compatible-changes-to-a-wsdl-contr) following il tuo commento. –

risposta

3

Primo; Non sono a conoscenza di tali strumenti.

Ho anche risposto alla domanda "altro". Osservando le linee guida pubblicate lì, direi che dovrebbe essere possibile eseguire il rollover (possibile, non facile :).

Ho fatto un lavoro simile in passato; anche se non per WSDL ma per un altro dialetto. Il mio approccio era;

  1. analizzare il WSDL/Schema come XML regolare (sono dopo tutti i dialetti XML stessi) (Schema può essere difficile però)
  2. Costruire un modello in-memory
  3. Definire regole e applicarle

La parte WSDL è più semplice poiché esiste un numero limitato di costrutti; Lo schema sarebbe difficile ma comunque fattibile, credo.

Problemi correlati