Differenza tra JAX-WS, Axis2 e CXF


131

Qual è la differenza tra:

  1. JAX-WS
  2. axis2
  3. CXF

Tutti e tre possono essere utilizzati per creare servizi Web in Java.
So che JAX-WS è una specifica e Axis2 e CXF sono implementazioni, ma Java 1.6 ha l'implementazione di JAX-WS se non sbaglio.

Quindi si può usare Java 1.6 per sviluppare servizi web JAX-WS senza usare Axis2 o CXF? Allora a che serve Axis2, CXF?

Risposte:


143

L'implementazione JAX-WS integrata nel JDK è davvero solo la roba di base. Se hai bisogno di una delle cose WS- * più complesse come WS-Security, WS-RM, WS-Policy, ecc ..., devi utilizzare una delle alternative come CXF o Metro o Axis2. Può anche dipendere da cosa stai cercando di integrare. Ad esempio, CXF ha un supporto Spring di prim'ordine e un ottimo supporto OSGi.

CXF ha anche altre cose oltre a JAX-WS. Ha anche un'implementazione conforme a JAX-RS e supporta molto bene i servizi di esposizione come REST e SOAP. Ha un'implementazione SOAP / JMS conforme al W3C se è richiesto quel tipo di cose. Fondamentalmente, molte cose non sono disponibili dall'implant JAX-WS in-jdk.

Vedi anche:

Differenza tra Apache CXF e Axis


1
Grazie, aiuta molto. Quindi per le cose di base del servizio Web posso semplicemente usare java 1.6 per implementare. E la loro era un'implementazione di jax-ws in java 1.5? O è stato aggiunto dopo 1.6? Se ho bisogno di funzionalità aggiuntive posso andare con CXF?
Maverick Riz,

5
È stato aggiunto in 1.6. Se hai bisogno del supporto 1.5, dovresti afferrare CXF o l'impianto di riferimento JAX-WS o simili.
Daniel Kulp,

7
E per la maggior parte, se inizi con l'impliant JAX-WS in-jdk, puoi inserire CXF in qualsiasi momento e funzionerebbe comunque.
Daniel Kulp,

1
Ho un piccolo dubbio Metro -L'implementazione JAX-WS non è integrata nel JDK? O Metro è più sofisticato dell'implementazione JAX-WS integrata nel JDK?
Dexter,

16

In breve.

WSDL WS- * sono indipendenti dalla lingua.

JAX-WS sono standard Java per la creazione di servizi Web.

Apache CXF e Apache Axis 2 sono due implementazioni di JAX-WS. Offrono anche implementazioni JAX-RS in modo da poter creare servizi Restful.

CXF ha una migliore integrazione con Spring e Camel ( camel-cxf ). E Axis 2 sembra non avere una versione attiva.


15

Ho trovato con CXF - l'integrazione con Spring è molto semplice. Inoltre, offre varie funzionalità come:

  1. Personalizzazione delle funzionalità di registrazione
  2. Intercettore in entrata e in uscita
  3. Sicurezza a livello di applicazione
  4. Facile gestione delle eccezioni mediante guasto personalizzato.

Per maggiori dettagli, se vuoi, controlla questo link:

http://predic8.com/axis2-cxf-jax-ws-comparison.htm

http://www.ibm.com/developerworks/java/library/j-jws11/

E, ho letto sopra i collegamenti, la sua preety è utile per me. Spero che funzioni anche per te.

Grazie !


3

L'organizzazione del servizio Web fa riferimento ad alcune linee guida, ad esempio BP (profilo di base) 1.0 e BP (profilo di base) 1.1. Base sulle linee guida Rilascio di persone in tutte le lingue (Java / .Net) Specifica con implementazione predefinita In Java Base su BP 1.0 Le specifiche sono JAX-RPC e le specifiche 1.0 sono JAX-WS

L'implementazione predefinita di JAX-WS è RI (Implementazione di riferimento) In base al requisito / Scelta possiamo modificare l'implementazione (RI / AXIS-2 / CXF)

Quando stiamo usando java 1.6 quel caso in JDK è già disponibile, quindi non è richiesto nessun altro vaso. Se si desidera utilizzare un'implementazione diversa, quel caso richiede un vaso di implementazione particolare.

Axis-2 e CXF provengono da Apache

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.