2009-08-07 14 views

risposta

209

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

+10

Un confronto recente da un punto di vista WS-Security: http://www.ibm.com/developerworks/java/library/j-jws19/index.html –

+0

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

50
  • 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- *.
+0

Il confronto referenziato non è più disponibile: "Contenuto scaricato rimosso" – maiklos

+5

+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. –

38

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). enter image description here

1

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.

19

I vantaggi di CXF:

  1. CXF supporti per WS-Addressing, WS-Policy, WS-RM, WS-Security e WS-I BasicProfile.
  2. CXF implementa l'API JAX-WS (secondo JAX-WS 2.0 TCK).
  3. CXF ha una migliore integrazione con Spring e altri framework.
  4. CXF ha un'elevata estensibilità in termini di strategia di intercettazione.
  5. CXF dispone di funzionalità più configurabili tramite l'API anziché di file XML ingombranti.
  6. 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.
  7. 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:

  1. 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.
  2. Axis ha più opzioni per i binding di dati per la tua scelta
  3. Axis2 supporta più lingue, inclusa la versione C/C++ e la versione Java.
  4. 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)

1

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.

Problemi correlati