Welches Framework ist besser CXF oder Spring-WS? [geschlossen]

80

Ich bin dabei, CXF und Spring-WS für Webdienste zu recherchieren / zu vergleichen. Ich muss sowohl als Anbieter als auch als Verbraucher von WS fungieren. Kurz gesagt, mir wurde gesagt, dass Spring-WS besser konfigurierbar ist, CXF jedoch einfacher in Betrieb zu nehmen ist. Diese Frage ist subjektiv, hilft mir aber bei meiner Forschung.

  • Welche Erfahrungen haben Sie mit diesen beiden Frameworks?
  • Sind Sie mit beiden Frameworks auf Fallstricke gestoßen?
  • Haben Sie nützliche Funktionen gefunden, die von beiden bereitgestellt werden und möglicherweise nicht von den anderen bereitgestellt werden?
Kevin
quelle

Antworten:

21

Ich denke, der größte Unterschied ist, dass Spring-WS nur "Vertrag zuerst" ist, während ich glaube, dass CXF normalerweise "Vertrag zuletzt" 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 der Einstieg in der Regel einfacher.

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

Toolkit
quelle
19
JAX-WS unterstützt den Contract-First-Ansatz, mit dem Leute, die ernsthafte Entwicklungen durchführen, ihn meiner Meinung nach nutzen. Das ist definitiv kein guter Weg, um JAX-WS-Stacks und Spring WS zu unterscheiden. Eigentlich ist Spring WS nicht mit JAX-WS vergleichbar, Spring WS ist nur ein minimalistischer WS-Stack.
Pascal Thivent
80

Über Apache CXF:

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

Über Spring WS:

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

Letztendlich sehe ich Spring WS als minimales Webdienst-Framework , bin jedoch der Meinung, dass es (meiner Meinung nach) keine Vorteile gegenüber Apache CXF hat (das sich sehr gut in Spring integrieren lässt). Zwischen beiden würde ich Apache CXF abholen.

Pascal Thivent
quelle
34

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

In CXF habe ich Maven und das Maven-Plugin verwendet und das Ziel wsimport aufgerufen , um die SEI (Schnittstelle) zu generieren, die ich dann implementiert habe. Nachdem ich die Schnittstelle so implementiert habe, dass sie die eigentliche Servicelogik enthält, und meine Bean-Implementierung beans.xml konfiguriert habe , habe ich Maven sie zur Bereitstellung in eine War-Datei packen lassen. Die gesamte Übung hätte nicht einfacher sein können.

Ich denke nicht, dass Spring-WS irgendwelche Vorteile bietet, die das Fehlen von JAX-WS überwiegen. Mit CXF können Sie Spring bereits zum Verkabeln Ihrer Beans verwenden und JAX-WS ist vollständig implementiert.


quelle
12

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.

Zu den Problemen, die Sie mit CXF haben können, siehe meinen Beitrag /programming/289977/recommended-framework-for-java-web-services#290205 . Ich stimme dem Toolkit zu , dass der größte Unterschied zwischen Frameworks besteht ideologisch: Was ist der erste Code (dh Schnittstelle) oder Vertrag (dh wsdl). Sehen Sie hier einige Details:

FoxyBOA
quelle
0

Eine weitere Option, die bei diesem Vergleich berücksichtigt werden muss, ist Enunciate .

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

PlanBForOpenOffice
quelle