Ho usato entrambi gli approcci. Il mio suggerimento è quello di utilizzare lo contratto prima schema, ma codice prima WSDL.
Scrivi file WSDL ha un sacco di sfumature strane come attacchi, porti e così via. Preferirei farlo con strumenti piuttosto che a mano. Ci sono strumenti che consentono di fare questo, ma nessuno di loro sono più semplici di
@WebService
public ...
Per lo meno è possibile verificare la distribuzione.
Per lo schema, ho suggerito prima il contratto perché il linguaggio dello schema XML è molto più ricco di quello che è possibile descrivere in Java. Un esempio che di solito dò sta mostrando che XML Schema può limitare la dimensione di una stringa e applicare un modello di espressione regolare. Farlo in Java e le annotazioni sembrano un po 'più confuse.
Un altro vantaggio di fare lo schema di contratto di prima è la presenza di strumenti per convertire il vostro file di schema in documentazione HTML.
Lo strumento XJC può generare i file di classe necessari. Tuttavia, lo raccomanderei solo all'inizio.
Alla fine si dovrebbe prendere il file WSDL generato e lavorare con quello. In questo modo è possibile utilizzare wsimport e verificare che l'intera operazione da WSDL a Schema sia valida.
È possibile eseguire la distribuzione con il file WSDL utilizzando l'attributo wsdlLocation nell'implementazione @WebService e il server delle applicazioni correggerà i dati di associazione per gli utenti che richiedono il WSDL dal server, ma si conservano comunque le annotazioni. Altrimenti le annotazioni non verranno visualizzate nei file WSDL richiesti.
fonte
2010-10-01 18:25:50
Poiché la domanda si interroga sui vantaggi e gli svantaggi di ciascuna parte, non vedo che sia soggettiva. –