it-swarm.com.de

Welches Framework ist besser CXF oder Spring-WS?

Ich bin gerade dabei, CXF und Spring-WS für Webservices zu recherchieren/zu vergleichen. Ich muss sowohl als Anbieter als auch als Konsument von WS fungieren. Kurz gesagt, mir wurde gesagt, dass Spring-WS besser konfigurierbar ist, CXF jedoch einfacher zu installieren ist. Diese Frage ist subjektiv, hilft mir aber bei meiner Recherche.

  • Welche Erfahrungen haben Sie mit einem dieser Frameworks?
  • Haben Sie bei beiden Frameworks Fallstricke gefunden?
  • Haben Sie nützliche Funktionen von beiden gefunden, die möglicherweise nicht von den anderen bereitgestellt werden?
78
Kevin

Ich denke, der größte Unterschied ist Spring-WS ist nur 'contract-first', während ich glaube, dass CXF normalerweise 'contract last' ist.

http://static.springsource.org/spring-ws/sites/1.5/reference/html/why-contract-first.html

Der letzte Vertrag beginnt mit Java-Code, daher ist es in der Regel einfacher, damit anzufangen. 

Die von ihm erstellte WSDL ist jedoch tendenziell anfälliger.

21
toolkit

Über Apache CXF:

  • CXF unterstützt verschiedene Standards, darunter SOAP, das WSI-Basisprofil, WSDL, WS-Adressierung, WS-Policy, WS-ReliableMessaging, WS-Security, WS-SecurityPolicy und WS-SecureConversation. 
  • Apache CXF bietet sowohl Contract-Last-Ansätze (beginnend mit Java) als auch Contract-First-Ansätze (beginnend mit der WSDL). 
  • Apache CXF implementiert JAX-WS und JAX-RS.

Über Frühling WS:

  • Spring WS bietet "nur" Vertragsbeginn, beginnend mit einem XSD-Schema. 
  • Spring WS unterstützt SOAP, WS-Security und WS-Adressierung.

Am Ende sehe ich Spring WS als ein minimal Webservice-Framework, bedenke jedoch, dass es meiner Meinung nach keine Vorteile gegenüber Apache CXF bietet (das sich hervorragend in Spring integriert). Zwischen beiden würde ich Apache CXF abholen.

75
Pascal Thivent

CXF hindert Sie in keiner Weise daran, mit einem Vertrag (WSDL) zu beginnen. Ich habe beide Produkte verwendet, um einen Webservice aufzubauen. 

In CXF habe ich Maven und das Maven-Plugin verwendet und das Ziel wsimport aufgerufen, um die SEI (Schnittstelle) zu generieren, die ich dann implementierte. Nachdem ich die Schnittstelle implementiert habe, um die eigentliche Servicelogik zu enthalten und meine Bean-Implementierung beans.xml zu konfigurieren, lasse ich Maven es in eine Kriegsdatei packen, um es bereitzustellen. Die ganze Übung hätte nicht einfacher sein können.

Ich denke nicht, dass Spring-WS irgendwelche Vorteile bietet, die den Mangel an JAX-WS überwiegen. Mit CXF können Sie Ihre Beans bereits mit Wire verdrahten. Außerdem ist JAX-WS vollständig implementiert.

34
jkrupka

Wir haben Erfahrung mit CXF und seinem Vorgänger XFire und ich kann es als solides, schnelles (WS-Erstellen und Ausführen) und zuverlässiges Framework empfehlen.

Bezüglich der Probleme, die Sie mit CXF treffen können, siehe meinen Beitrag https://stackoverflow.com/questions/289977/recommended-framework-for-Java-web-services#290205 Und ich stimme zu Toolkit , dass der größte Unterschied zwischen Frameworks ideologisch ist: Was ist der erste Code (dh Schnittstelle) oder Vertrag (dh WSDL). Sehen Sie hier einige Details:

12
FoxyBOA

Apache CXF:

Wichtige Positive:

❶ Meist verbreiteter Web Services Standard Now; Verbesserung gegenüber AXIS2, das nun schrittweise durch Apache CXF ersetzt wird

❷ Intuitiv und einfach zu verwenden (weniger Kodierung erforderlich als bei AXIS2)

❸ Reinigen Sie die Trennung von Frontends wie JAX-WS vom Kerncode

❹ Vollständig kompatibel mit JAX-WS, JAX-RS und anderen

❺ Beste Leistung in allen verfügbaren Frameworks mit minimalem Rechenaufwand

❻ Unterstützt eine Vielzahl von Front-End-Modellen

❼ Unterstützt sowohl JAX-WS als auch JAX-RS (für restful Services)

❽ Unterstützt JBI & SDO (nicht in AXIS2 unterstützt)

❾ Kompatibel mit Spring Framework

Wichtige Bedenken:

Orch Orchestration und WS-Transaktionen werden noch nicht unterstützt

❷ Unterstützt WSDL 2.0 noch nicht

Frühling WS:

Wichtige Positive:

❶ Bester Support in Bezug auf die Unterstützung des Contract-first-Web Services-Entwicklungsansatzes

❷ Durchsetzung von Standards und Best Practices durch Rahmenbedingungen (kein Ausweg und daher auch Einschränkung)

❸ Unterstützt Spring Annotations sowie JAX-WS

❹ Wenigster Code aus der Sicht des Entwicklers

❺ Am besten mit dem Spring Technology Stack (auch einem ähnlichen Architekturstapel wie Spring MVC) einschließlich Spring Security abgestimmt

Wichtige Bedenken:

❶ Wenigste Anzahl der unterstützten WS- * Spezifikationen (entspricht nicht vollständig JAX-WS)

❷ Spring bietet sich selbst als Standard an und daher unterstützen andere Java-kompatible Frameworks eine bessere Unterstützung von Standards

❸ Unterstützt nur das Web Services-Entwicklungsmodell mit Vertragsabschluss

Quelle: https://dzone.com/articles/Apache-cxf-vs-Apache-axis-vs

8
Ahmed MANSOUR

Eine andere zu berücksichtigende Option in diesem Vergleich ist Enunciate .

Vor allem, wenn Sie zuerst mit Java anfangen möchten.

1

Schauen Sie sich einen verwandten Beitrag an: Aufbau eines Webservices mit Spring-WS