Quali sono i vantaggi dell'utilizzo di Apache CXF su Apache Axis e viceversa?Differenza tra Apache CXF e Axis
risposta
Tenete a mente, io sono completamente distorte (PMC Cattedra di CXF), ma i miei pensieri:
Da un rigorosamente "può progetto fare quello che ho bisogno di fare" prospettiva, entrambi sono abbastanza equivalenti. Ci sono alcune cose "limite" che CXF può fare con quell'Asse 2 e viceversa. Ma per il 90% dei casi d'uso, funzionerà bene.
Quindi, si tratta di un insieme di altre cose oltre alle "funzioni casella di controllo".
API - CXF spinge "gli standard based" (JAX-WS compliant), mentre Axis2 generale di API va verso le cose di proprietà. Detto questo, anche CXF potrebbe richiedere l'utilizzo di API proprietarie per configurare/controllare varie cose al di fuori delle specifiche JAX-WS. Per REST, CXF utilizza anche le API standard (conformi a JAX-RS) invece di cose proprietarie. (Sì, sono a conoscenza del runtime JAX-WS in Axis2, ma tooling e documenti e tutto non lo targetizza)
Aspetti della community e supportabilità - CXF è orgogliosa di rispondere ai problemi e creare "pacchetti fissi" "disponibile per gli utenti. CXF ha fatto 12 fixpacks per 2.0.x (rilasciato due anni fa, quindi circa ogni 2 mesi), 6 fixpack a 2.1.xe ora 3 per 2.2.x. Axis2 in realtà non "supporta" versioni precedenti. A meno che non si riscontri un problema "critico", potrebbe essere necessario attendere fino alla prossima versione più grande (in media circa ogni 9-10 mesi circa) per ottenere le correzioni. (anche se, con entrambi, puoi prendere il codice sorgente e correggere/correggere te stesso. Devi utilizzare l'open source.)
Integrazione - CXF ha un'integrazione molto migliore con Spring se usi Spring. Tutta la configurazione e tale è fatta attraverso Spring. Inoltre, le persone tendono a considerare CXF più "embeddable" (non ho mai visto Axis2 da questa prospettiva) in altre applicazioni. Non sono sicuro che le cose del genere siano importanti per te.
Prestazioni: entrambe funzionano molto bene. Penso che il databinding ADB proprietario di Axis2 sia un po 'più veloce di CXF, ma se usi JAXB (di nuovo basato su API standard), CXF è un po' più veloce. Quando si utilizzano scenari più complessi come WS-Security, il "motore" di sicurezza sottostante (WSS4J) è lo stesso per entrambi, quindi le prestazioni sono completamente comparabili.
Non sono sicuro se questo risponde alla domanda. Spero che almeno fornisca alcune informazioni.
:-)
Dan
- Axis2: più onnipresenti sul mercato, supporta più attacchi, supporta altri linguaggi come C/C++.
- CXF: Molto più facile da usare, più compatibile con la primavera, più veloce supporto per alcune estensioni WS- *.
Il confronto referenziato non è più disponibile: "Contenuto scaricato rimosso" – maiklos
+1 per molto più facile da usare. IMO, CXF è anche meno dettagliato quando si generano le classi di base per un client WS/WS da WSDL. Un client Axis richiede un caricamento di codice fastidiosamente difficile da capire e rifrattore, al contrario di quello di CXF. –
Un'altra cosa è l'attività della comunità. Confronta il traffico della mailing list per axis e cxf (2013).
Quindi, se questo è un indicatore di utilizzo, allora l'asse è di gran lunga meno utilizzato di CXF.
Compare CXF and Axis statistics at ohloh. CXF ha un'attività molto elevata mentre l'asse ha una bassa attività nel complesso.
Questo è il grafico per il numero di commit nel tempo per CXF (rosso) e Asse1 (verde) Asse2 (blu).
Secondo la mia esperienza CXF è buono in termini di configurazione in ambiente Spring. Anche le classi generate sono semplici da capire. E come è più attiva, si ottiene un miglior supporto in confronto a AXIS o axis2.
I vantaggi di CXF:
- CXF supporti per WS-Addressing, WS-Policy, WS-RM, WS-Security e WS-I BasicProfile.
- CXF implementa l'API JAX-WS (secondo JAX-WS 2.0 TCK).
- CXF ha una migliore integrazione con Spring e altri framework.
- CXF ha un'elevata estensibilità in termini di strategia di intercettazione.
- CXF dispone di funzionalità più configurabili tramite l'API anziché di file XML ingombranti.
- CXF ha Bindings: SOAP, REST/HTTP e le sue associazioni dati supportano JAXB 2.0, Aegis, per impostazione predefinita utilizza JAXB 2.0 e più specifiche Java standard chiuse.
- CXF dispone di abbondanti toolkit, ad es. Da Java a WSDL, da WSDL a Java, da XSD a WSDL, da WSDL a XML, da WSDL a SOAP, da WSDL a Service.
I vantaggi di Axis2:
- Axis2 supporta anche WS-RM, WS-Security e WS-I BasicProfile tranne che per WS-Policy, mi aspetto che sarà supportato in una prossima versione.
- Axis ha più opzioni per i binding di dati per la tua scelta
- Axis2 supporta più lingue, inclusa la versione C/C++ e la versione Java.
- Axis2 supporta una gamma più ampia di associazioni di dati, inclusi XMLBeans, JiBX, JaxMe e JaxBRI nonché il proprio binding di dati nativi, ADB. cronologia più lunga di CXF.
In sintesi: Dall'alto articoli vantaggio, ci porta ad un buon pensiero per confrontare Axis2 e CXF per i loro meriti. hanno tutti diverse aree ben sviluppate in un determinato campo, CXF è molto configurabile, integrabile e ricco di kit di strumenti supportati e vicini alla comunità Java, Axis2 ha adottato un approccio che lo rende in molti modi simile a un server di applicazioni in miniatura. è attraverso più linguaggi di programmazione.Grazie alla sua indipendenza, Axis2 si presta a servizi Web che sono indipendenti, indipendenti da altre applicazioni e offrono un'ampia varietà di funzionalità.
Come sviluppatore, dobbiamo accordare la nostra prospettiva di scegliere quella giusta, a seconda di quale quadro di scegliere, avrete il beneficio di una comunità open source attiva e stabile. In termini di prestazioni, ho eseguito un test basato sulla stessa funzionalità e configurato nello stesso contenitore web, il risultato mostra che CXF ha ottenuto risultati leggermente migliori di Axis2, il singolo caso potrebbe non rispecchiare esattamente le loro capacità e prestazioni.
In alcuni articoli di ricerca, rivela che il databinding ADB proprietario di Axis2 è leggermente più veloce di CXF poiché non ha funzionalità aggiuntive (WS-Security). Apache AXIS2 è un framework relativamente più utilizzato, ma i punteggi di Apache CXF rispetto ad altri Web Services Framework considerano relativamente la facilità di sviluppo, l'attuale tendenza del settore, le prestazioni, la scorecard complessiva e altre funzionalità (a meno che non sia necessario il supporto di Web Services Orchestration, che non è richiesto) qui)
Un altro vantaggio di CXF: si connette al server web utilizzando l'autenticazione NTLMv2 fuori dalla scatola. (utilizzato da Windows 2008 & su) Prima di utilizzare CXF, ho hackerato Axis2 per utilizzare HTTPClient V4 + JCIFS per rendere ciò possibile.
- 1. differenza tra axis-wsdl4j e wsdl4j
- 2. Differenza tra CXF e JAX-WS
- 3. Cosa significa CXF in "Apache CXF"?
- 4. Apache CXF - Set HTTP
- 5. Qual è la differenza tra Apache Felix e Apache Tomcat
- 6. Qual è la differenza tra Apache Spark e Apache Flink?
- 7. Nome utente WS-SecurityToken con Apache CXF
- 8. CXF Apache non potevano inviare messaggi e leggere time out
- 9. Apache CXF + Spring: Autenticazione semplice certificato
- 10. Strategia di abbinamento conduit Apache CXF
- 11. Client Apache CXF per endpoint dinamici
- 12. Come utilizzare Apache CXF come client?
- 13. Apache Ivy: Differenza tra cache locale Ivy e repository locale
- 14. Differenza tra FastCgiExternalServer e FastCgiServer in Apache FastCGI PHP?
- 15. Qual è la differenza tra Apache Ambari Server e Agent
- 16. Qual è la differenza tra Apache Spark SQLContext e HiveContext?
- 17. Differenza tra na(). Cadere() e filtro (col.isNotNull) (Apache Spark)
- 18. Confronto tra Sun Metro e Apache CXF per lo sviluppo di servizi web?
- 19. Client servizio Web Applet, con Eclipse Indigo utilizzando Apache CXF,
- 20. Errore Apache Axis WSDL2Java - Manca <soap:fault> elemento
- 21. Differenza tra solr e Lucene
- 22. Esiste un file jar Apache Axis WSDL2Java per Eclipse Indigo
- 23. differenza tra SSLCACertificateFile e SSLCertificateChainFile
- 24. Differenza tra JAVA_HOME e JRE_HOME
- 25. Differenza tra R.scale() e sklearn.preprocessing.scale()
- 26. Assistente client Eclipse Web Service e CXF
- 27. Differenza tra web-server e servlet container
- 28. La differenza tra $ * e $ @
- 29. Differenza tra $ # e $ {# @}
- 30. Differenza tra. e #
Un confronto recente da un punto di vista WS-Security: http://www.ibm.com/developerworks/java/library/j-jws19/index.html –
Qualsiasi suggerimento per rendere più veloce la comunicazione HTTP quando si utilizza CXF all'interno di un intranet? Connetti a 8 servizi Web su lan – tgkprog