2010-01-26 10 views
10

Sto generando un WSDL da una classe Java utilizzando l'annotazione @WebService ed eseguendo wsgen, attivato da un obiettivo di generazione Maven.Utilizzare i nomi dei parametri del metodo durante la generazione di WSDL da Java utilizzando wsgen e maven?

Il problema che ho è il WSDL generato definisce i parametri per le operazioni del servizio Web come arg0, ar1, arg2, ecc anziché utilizzare i nomi dei parametri dal codice. Questi nomi non sono utili per i clienti del servizio che tentano di capire cosa deve essere passato.

C'è un modo per dire a wsgen di afferrare e usare i nomi dei parametri dal metodo - posizionando un'annotazione sul metodo o un parametro inviato a wsgen?

Grazie!

risposta

15

Utilizzare l'annotazione @WebParam.

@WebMethod 
public void thisMethodHasAWebParam(@WebParam(name="param1") String arg1) { 
} 
+0

Sapevo che doveva esserci un modo semplice per farlo. Grazie mille! – Vinnie

+3

Che funziona. Ma questo non è terribilmente ridondante? So che le firme dei metodi in byte code non preservano i nomi dei parametri, ma non è possibile che lo strumento guardi anche il codice sorgente? – Thilo

+1

Come può guardare nel codice sorgente, poiché utilizza l'URL del file WSDL durante la generazione del codice. E il file WSDL viene generato in fase di runtime. –