Client WebService Java (modo migliore)

Ho un WSDL di terze parti, ho bisogno di scrivere codice in Java per un client di servizi Web per richiamare le operazioni nel WSDL di terze parti. Al momento, ho generato lo stub del client utilizzando lo strumento WSDL2JAVA da Axis e ho utilizzato XMLbeans per l’associazione dei dati.

  1. Qual è l’approccio migliore per fare questo JAVA?
  2. Ho letto di SAAJ, sembra che questo sarà un approccio più granulare?
  3. Esiste un modo diverso dall’utilizzo dello strumento WSDL2Java per generare il codice. Forse wsimport in un’altra opzione. Quali sono i pro e i contro?
  4. Qualcuno può inviare i collegamenti per alcuni buoni tutorial su questi argomenti?
  5. Quali sono le opzioni che dobbiamo usare durante la generazione del codice utilizzando WSDL2Java?

Ho usato alcune delle cose di base inizialmente. Ora ho queste opzioni

 C:\axis2-1.5.1\bin>wsdl2java -uri mywsdlurl -o client -p somepackage -d xmlbeans -s -t -ssi 

    Qual è l’approccio migliore per fare questo JAVA?

    Personalmente NON userò l’Axis 2, anche solo per lo sviluppo lato client. Ecco perché me ne sto lontano:

    1. Non mi piace la sua architettura e odio il suo modello di dispiegamento controproducente.
    2. Trovo che sia un progetto di bassa qualità.
    3. Non mi piacciono le sue prestazioni (vedi questo benchmark contro JAX-WS RI ).
    4. È sempre un incubo impostare le dipendenze (io uso Maven e io devo sempre combattere con il gazillion di dipendenze) (vedi n. 2)
    5. Asse ha succhiato alla grande e Axis2 non è migliore. No, questa non è un’opinione personale, c’è un consenso.
    6. Ho sofferto una volta, mai più.

    L’unico motivo per cui Axis è ancora in circolazione è IMO perché viene utilizzato in Eclipse da anni. Grazie a Dio, questo è stato risolto in Eclipse Helios e spero che Axis2 possa finalmente morire. Ci sono solo pile molto migliori.

    Ho letto di SAAJ, sembra che questo sarà un approccio più granulare?

    Di fare ciò che?

    Esiste un modo diverso dall’utilizzo dello strumento WSDL2Java per generare il codice. Forse wsimport in un’altra opzione. Quali sono i pro e i contro?

    Sì! Preferisci uno stack JAX-WS come CXF o JAX-WS RI (potresti anche leggere su Metro, Metro = JAX-WS RI + WSIT ), sono semplicemente più eleganti, più semplici, più facili da usare. Nel tuo caso, utilizzerei semplicemente JAX-WS RI che è incluso in Java 6 e quindi wsimport .

    Qualcuno può inviare i collegamenti per alcuni buoni tutorial su questi argomenti?

    Questo è un altro pro, ci sono un sacco di tutorial (di buona qualità) per JAX-WS, vedi per esempio:

    • Sviluppo di client di servizio Web JAX-WS (inizia qui)
    • Presentazione di JAX-WS 2.0 con la piattaforma Java SE 6, parte 1
    • Creazione di un servizio Web semplice e client con JAX-WS
    • Creazione di un client SOAP con Apache CXF o GlassFish Metro (il blog di Glen Mazza è una grande risorsa)

    Quali sono le opzioni che dobbiamo usare durante la generazione del codice utilizzando WSDL2Java?

    Nessuna opzione, usa wsimport 🙂

    Guarda anche

    • Elad’s Adventures in Java WebServiceLand
    • Asse2: Perché preoccuparsi? sul BileBlog (preparati per la bile) – dovrai fermare il reindirizzamento.

    Domande correlate

    • Qual è il miglior framework di java webservice?
    • Spring-ws o Axis2 o Qualcos’altro per l’approccio “Contract-First” al WS

    Ho avuto un buon successo utilizzando Spring WS per la parte client di un’app di servizio Web – vedi http://static.springsource.org/spring-ws/sites/1.5/reference/html/client.html

    Il mio progetto utilizza una combinazione di:

    • XMLBeans (generato da un semplice lavoro di Maven che utilizza il plugin xmlbeans-maven)

    • Spring WS – usando marshalSendAndReceive () riduce il codice a una riga per l’invio e la ricezione

    • alcuni Dozer: mapping dei complessi XMLBeans in bean semplici per la GUI del client

    Puoi trovare alcune risorse relative allo sviluppo di client di servizi web usando l’asse2 di Apache qui.

    http://today.java.net/pub/a/today/2006/12/13/invoking-web-services-using-apache-axis2.html

    Sotto i post fornisce buone spiegazioni sullo sviluppo di servizi Web usando l’asse2 di Apache.

    http://www.ibm.com/developerworks/opensource/library/ws-webaxis1/

    http://wso2.org/library/136

    Alcune idee nella seguente risposta:

    Passi nella creazione di un servizio web utilizzando Axis2 – Il codice client

    Fornisce un esempio di un client Groovy che richiama le classi ADB generate dal WSDL.

    Ci sono molti framework di servizi web là fuori …