Come creare un WSDL documentato usando XFire
-
06-07-2019 - |
Domanda
Uso XFire per creare un wrapper di servizi Web attorno alla mia applicazione. XFire fornisce l'interfaccia webservice e WSDL in fase di esecuzione (o li crea in fase di compilazione, non lo so esattamente).
Molti dei nostri clienti non conoscono molto bene i servizi web e inoltre non leggono alcuna documentazione esterna come Javadoc. So che è possibile aggiungere documentazione (per parametri e metodi) direttamente al file WSDL.
Ho pensato alle annotazioni o ai file XML di Aegis ma non so come ... Conosci un modo?
Modifica: ho appena trovato questo problema JIRA ma l'ultima attività è stata il 2006. Qualche idea?
Soluzione
XFire si dirige lentamente verso / dev / null. Utilizzare invece CXF . In altre parole, XFire è deprecato a favore di CXF - è praticamente lo stesso sviluppatore.
Dato che usi l'approccio Java-first, ti suggerisco di generarti WSDL una volta per tutte con lo strumento java2wsdl
di CXF, quindi inserisci la tua documentazione e dici a CXF di usare che documentato WSDL invece di consentire a CXF di generare il proprio WSDL (non documentato) in fase di runtime / deploy-time.
Questa pagina ha praticamente tutto ciò che devi sapere creando un servizio web in CXF.
Altri suggerimenti
E il mio ultimo suggerimento riguardo a CXF - usa Aegis per l'associazione dei dati invece di JAXB. Non funziona per POJO complessi.
Nella mia esperienza non abbiamo problemi con POJO complessi e JAXB, l'unico problema è che il codice inizia a essere ingombra di JAXBElements. D'altra parte, la documentazione di Aegis è piuttosto scarsa e non ben mantenuta rispetto a CXF.
Vorrei aggiungere i miei due centesimi per quanto riguarda XFire. Abbiamo avuto un problema molto serio con XFie sotto JDK6 (sia Tomcat 6.0 che 5.5). Dai un'occhiata a tale problema . Nel nostro caso XFire con servizi Web 4+ in JDK6 porta a server delle applicazioni sospesi (deadlock dei thread, ecc.). È interessante, ma sotto JDK5 tutto era OK.
E sono completamente d'accordo con Christian Vest per quanto riguarda la migrazione a CXF da XFire. Ha senso in molti casi, ad es. ESB Mule 2 non supporta più i connettori XFire nativi ( vedi anche ).
E vorrei aggiungere che la migrazione da XFire a CXF non è un modo semplice (ad es. CXF ha dipendenze jar che sono in conflitto con alcune versioni di ibernazione vedi anche ), ma è fattibile. Nel nostro caso lo abbiamo fatto per un paio di giorni senza correzione del codice (configurazione solo primavera).
E il mio ultimo suggerimento riguardo a CXF - usa Aegis per l'associazione dei dati invece di JAXB. Non funziona per POJO complessi.