Domanda

Quali sono i vantaggi di utilizzare Apache CXF sopra Apache Axis e viceversa?

È stato utile?

Soluzione

Tenete a mente, io sono totalmente di parte (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 alcune cose "limite in" che CXF può fare che asse 2 non può e viceversa. Ma per il 90% dei casi d'uso, sia funzionerà bene.

In questo modo, si tratta di un mucchio di altre cose diverse "caratteristiche casella di controllo".

  • API - CXF spinge "gli standard based" di API (JAX-WS compliant), mentre Axis2 generale va verso le cose di proprietà. Detto questo, anche CXF può richiedere usi della proprietà API per configurare / controllare le varie cose al di fuori delle specifiche JAX-WS. Per il riposo, CXF utilizza anche (JAX-RS compliant) API standard invece delle cose di proprietà. (Sì, sono a conoscenza del runtime JAX-WS in Axis2, ma le attrezzature e documenti e tutto ciò che non lo bersagliano)

  • aspetti e sostenibilità della Comunità - CXF è orgogliosa di rispondere ai problemi e rendere "fixpack" a disposizione degli utenti. CXF ha fatto 12 fixpack per 2.0.x (uscito due anni fa, quindi circa ogni 2 mesi), 6 fixpack a 2.1.x, e ora 3 per 2.2.x. Axis2 in realtà non "sostenere" le versioni precedenti. A meno che un problema "critico" è colpito, potrebbe essere necessario attendere fino alla prossima release grande (hanno una media di circa ogni 9-10 mesi o giù di lì) per ottenere correzioni. (Anche se, con uno, si può afferrare il codice sorgente e patch / risolvere da soli. Gotta love open source.)

  • L'integrazione - CXF ha molto migliore integrazione primavera se si utilizza Primavera. Tutta la configurazione e come viene fatto attraverso primavera. Inoltre, le persone tendono a considerare CXF come più "embeddable" (non ho mai guardato Axis2 da questo punto di vista) in altre applicazioni. Non sono sicuro se cose del genere che ti interessano.

  • Prestazioni - entrambi comportano molto bene. Penso proprietaria ADB associazione dati di Axis2 è un po 'più veloce di CXF, ma se si utilizza JAXB (basato su standard API di nuovo), CXF è un po' più veloce. Quando si utilizzano gli scenari più complessi come WS-Security, la sicurezza "motore" di fondo (WSS4J) è lo stesso per entrambi così le prestazioni sono del tutto confrontabili.

Non sono sicuro se questo risponde alla domanda a tutti. Spero che almeno fornisce alcune informazioni.

: -)

Dan

Altri suggerimenti

  • Axis2 :. Maggiori onnipresente sul mercato, supporta più attacchi, sostiene altri linguaggi come C / C ++
  • CXF :. Molto più facile da usare, più accogliente primavera, più veloce ottenuto il supporto per alcune WS- * estensioni

Una cosa è l'attività della comunità. Confrontare il traffico mailing list per l'asse e CXF (2013).

Quindi, se questo è un indicatore di utilizzo, allora l'asse è di gran lunga meno utilizzato di CXF.

confrontare le statistiche CXF e dell'Asse a Ohloh . CXF è molto elevata attività mentre Axis ha una bassa attività complessiva.

Questa è la tabella per il numero di commit nel tempo per CXF (rosso) e Axis1 (verde) Axis2 (blu). entrare descrizione dell'immagine qui

I vantaggi di CXF:

  1. CXF supporti per WS-Addressing, WS-Policy, WS-RM, WS-Security e WS-I BasicProfile.
  2. CXF implementa JAX-WS API (secondo da JAX-WS 2.0 TCK).
  3. CXF ha una migliore integrazione con la Primavera e altri framework.
  4. CXF ha alta estensibilità in termini di strategia di intercettore.
  5. CXF ha caratteristica più configurabile tramite l'API, invece di file XML ingombranti.
  6. CXF ha Attacchi:. SOAP, REST / HTTP, e il suo sostegno di associazioni di dati JAXB 2.0, Aegis, per impostazione predefinita utilizzare JAXB 2.0 e più stretta specifica standard Java
  7. CXF ha abbondanti toolkit, per esempio Java per WSDL, WSDL a Java, XSD a WSDL, WSDL a XML, WSDL per SOAP, WSDL di servizio.

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 associazioni di dati per il vostro sceglie
  3. Axis2 supporta diverse lingue, tra cui la versione C / C ++ e Java versione.
  4. Axis2 supporta una gamma più ampia di associazioni di dati, tra cui XMLBeans, JiBX, JaxMe e JaxBRI così come i propri dati nativi vincolanti, ADB. la storia più di CXF.

In sintesi: Dall'alto articoli vantaggio, ci porta ad un buon pensiero per confrontare Axis2 e CXF per i loro meriti. tutti hanno diverse aree ben sviluppate in un certo campo, CXF è molto configurabile, integrabile ed è ricco kit di strumenti supportati e vicino alla comunità Java, Axis2 ha adottato un approccio che lo rende per molti versi simile a un server di applicazione in miniatura. è su più linguaggi di programmazione. perché la sua indipendenza, Axis2 si presta verso servizi web che si distinguono da sola, indipendente da altre applicazioni, e offre una vasta gamma 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 fatto un test basato le stesse funzionalità e ConfigEd nello stesso contenitore web, il risultato mostra che CXF eseguita po 'meglio di Axis2, il singolo caso potrebbe non riflettere esattamente le loro capacità e le prestazioni.

In alcuni articoli di ricerca, rivela che proprietaria ADB associazione dati di Axis2 è un po 'più veloce di CXF in quanto non hanno funzione aggiuntiva (WS-Security). Apache Axis2 è quadro relativamente più usato ma i punteggi di Apache CXF rispetto ad altri Web Services Framework che considerano relativamente facilità di sviluppo, tendenze attuali del settore, le prestazioni, scorecard complessiva e altre caratteristiche (a meno che non ci si sia esplicitamente necessario Web Services supporto Orchestration, che non è necessario qui )

Come per la mia esperienza CXF è buono in termini di configurazione in ambiente primavera. Anche le classi generate sono semplici da capire. E come è più attiva, si ottiene un miglior supporto in confronto a AXIS o axis2.

Un altro vantaggio di CXF: si connette al server Web utilizzando l'autenticazione NTLMv2 fuori dalla scatola. (Usato da Windows 2008 & up) Prima di utilizzare CXF, ho inciso Axis2 usare HTTPClient V4 + JCIFS per rendere questo possibile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top