Który framework jest lepszy CXF czy Spring-WS? [Zamknięte]

80

Jestem w trakcie wyszukiwania / porównywania CXF i Spring-WS dla usług internetowych? Muszę działać zarówno jako dostawca, jak i konsument WS. Krótko mówiąc, powiedziano mi, że Spring-WS jest bardziej konfigurowalny, ale CXF jest łatwiejszy do skonfigurowania i uruchomienia. To pytanie jest subiektywne, ale pomoże mi ukierunkować moje badania.

  • Jakie masz doświadczenie z którymkolwiek z tych frameworków?
  • Czy napotkałeś jakieś pułapki w obu frameworkach?
  • Czy znalazłeś jakieś przydatne funkcje oferowane przez jedną z nich, których prawdopodobnie nie zapewnia druga?
Kevin
źródło

Odpowiedzi:

21

Myślę, że największą różnicą jest to, że Spring-WS jest tylko „pierwszy kontrakt”, podczas gdy uważam, że CXF zwykle „ostatni kontrakt”.

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

Ostatni kontrakt zaczyna się od kodu Java, więc zwykle łatwiej jest zacząć.

Jednak utworzony przez niego plik WSDL jest zwykle bardziej kruchy.

zestaw narzędzi
źródło
19
JAX-WS wspiera podejście oparte na kontrakcie, które, jak sądzę, jest stosowane przez ludzi zajmujących się poważnymi zmianami. Więc to zdecydowanie nie jest dobry sposób na rozróżnienie stacków JAX-WS od Spring WS. Właściwie Spring WS nie porównuje się z JAX-WS, Spring WS to po prostu minimalistyczny stack WS.
Pascal Thivent
80

Informacje o Apache CXF:

  • CXF obsługuje kilka standardów, w tym SOAP, WSI Basic Profile, WSDL, WS-Addressing, WS-Policy, WS-ReliableMessaging, WS-Security, WS-SecurityPolicy i WS-SecureConversation.
  • Apache CXF oferuje zarówno podejście do ostatniego kontraktu (począwszy od języka Java), jak i do pierwszego kontraktu (począwszy od WSDL).
  • Apache CXF implementuje JAX-WS i JAX-RS.

O Spring WS:

  • Spring WS oferuje „tylko” kontrakt w pierwszej kolejności, zaczynając od schematu XSD.
  • Spring WS obsługuje protokoły SOAP, WS-Security, WS-Addressing.

Podsumowując, widzę Spring WS jako minimalny framework usług internetowych, ale uważam, że nie ma (moim zdaniem) żadnych zalet w porównaniu z Apache CXF (który bardzo dobrze integruje się ze Spring). Pomiędzy oboma wybrałbym Apache CXF.

Pascal Thivent
źródło
34

CXF w żaden sposób nie uniemożliwia rozpoczęcia umowy (WSDL). Użyłem obu tych produktów do zbudowania usługi internetowej.

W CXF użyłem Maven i wtyczki Maven, wywołując cel wsimport w celu wygenerowania SEI (interfejsu), który następnie zaimplementowałem. Po zaimplementowaniu interfejsu tak, aby zawierał rzeczywistą logikę usługi i skonfigurowaniu bean implementacji bean.xml , pozwoliłem Mavenowi spakować go do pliku wojny w celu wdrożenia. Całe ćwiczenie nie mogło być prostsze.

Myślę, że Spring-WS nie oferuje żadnych zalet, które przewyższają brak JAX-WS. CXF pozwala już używać Springa do łączenia ziaren, a także ma pełną implementację JAX-WS.


źródło
12

Mamy doświadczenie z CXF i jego poprzednikiem XFire i mogę polecić go jako solidny, szybki (tworzenie i wykonywanie WS) i niezawodny framework.

Jeśli chodzi o problemy, które możesz spotkać z CXF, zobacz mój post /programming/289977/recommended-framework-for-java-web-services#290205 I zgadzam się z zestawem narzędzi , że największą różnicą między frameworkami są ideologicznie: jaki jest pierwszy kod (tj. interfejs) lub kontrakt (np. wsdl). Zobacz szczegóły tutaj:

FoxyBOA
źródło
0

Inną opcją do rozważenia w tym porównaniu jest Enunciate .

Zwłaszcza jeśli chcesz najpierw zacząć od języka Java.

PlanBForOpenOffice
źródło