2008-11-17 25 views
75

Jestem w trakcie badania/porównywania CXF i Spring-WS dla usług internetowych? Muszę działać zarówno jako dostawca, jak i konsument WS. Mówiąc krótko, powiedziano mi, że Spring-WS jest bardziej konfigurowalny, ale CXF jest łatwiejszy do uruchomienia. To pytanie jest subiektywne, ale pomoże mi w moich badaniach.Które ramy są lepsze CXF lub Spring-WS?

  • Jakie masz doświadczenia z tymi dwoma frameworkami?
  • Czy napotkaliście jakieś pułapki przy pomocy którejś z ram?
  • Czy znalazłeś jakieś użyteczne funkcje dostarczone przez któreś z nich prawdopodobnie nie zostały dostarczone przez inne?

Odpowiedz

20

Myślę, że największa różnica jest wiosna-WS jest tylko „umowa-first” podczas gdy ja wierzę CXF jest normalnie „umowa-ostatni”.

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

Kontrakt-ostatni zaczyna się od kodu Java, więc jest zwykle łatwiejsze do uruchomienia.

Jednak plik WSDL, który tworzy, jest bardziej delikatny.

+16

JAX-WS obsługuje umowa pierwszego Podejrzewam, że podejrzewam, że ludzie używają poważnych rozwiązań. To zdecydowanie nie jest dobry sposób na rozróżnienie stosów JAX-WS i Wiosennych WS. W rzeczywistości Spring WS nie ma porównania z JAX-WS, Spring WS to tylko minimalistyczny stack WS. –

12

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

Odnośnie kwestii, które można spotkał się z CXF patrz mój post https://stackoverflow.com/questions/289977/recommended-framework-for-java-web-services#290205 I zgadzam się z toolkit, że największa różnica między ramami są ideologicznie: Jaki jest pierwszy kod (czyli interfejs) lub umowy (tj WSDL). Zobacz kilka szczegółów tutaj:

32

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, nazywając cel wsimport generowania SEI (interface) które następnie realizowane. Po zaimplementowaniu interfejsu, aby zawierał rzeczywistą logikę usługi i konfigurację mojego wdrożenia komponentu bean, beans.xml, umożliwiłem Maven umieszczenie go w pliku wojennym do wdrożenia. Całe ćwiczenie nie mogło być łatwiejsze.

Nie sądzę, że Spring-WS oferuje wszelkie zalety, które przeważają nad brakiem JAX-WS. CXF już pozwala używać Springa do podłączenia twoich ziaren, a także ma pełną implementację JAX-WS.

72

O Apache CXF:

  • CXF obsługuje kilka standardów w tym SOAP, profil WSI Basic, WSDL, WS-Addressing, WS-Policy, WS-ReliableMessaging, WS-Security, WS-SECURITYPOLICY i WS -SecureConversation.
  • Apache CXF oferuje zarówno podejście kontraktowe ostatnio (począwszy od Java), jak i kontraktowe (rozpoczynające się od WSDL).
  • Apache CXF implementuje JAX-WS i JAX-RS.

o wiośnie WS:

  • Wiosna WS oferuje "tylko" umowa pierwszego, począwszy od XSD Schema.
  • Spring WS obsługuje SOAP, WS-Security, WS-Addressing.

Więc na koniec, widzę Wiosna WS jako minimalnym stron internetowych ram, ale uważają, że tak nie jest (moim zdaniem) posiada przewagę nad Apache CXF (który integruje się bardzo dobrze z wiosny) . Pomiędzy nimi podniosę Apache CXF.

4

Apache CXF:

Kluczowe Pozytywne:

❶ najpowszechniej stosowanym Web Services teraz standard; Ulepszenie w stosunku oś2, który jest obecnie stopniowo zastąpiona apache cxf

❷ intuicyjny & łatwy w użyciu (mniej kodowania wymagane w porównaniu do oś2)

❸ Czyste rozdzielenie przednich końców, jak JAX-WS, z kod rdzeń

❹ pełni zgodny z JAX-WS, JAX-RS & inni

❺ Najlepszy występ we wszystkich dostępnych ram z minimum obliczeń narzutu

❻ Obsługuje szeroką gamę modeli front-end

❼ Obsługuje zarówno JAX-WS & JAX-RS (za spokojny Services)

❽ Obsługuje JBI & SDO (nieobsługiwane w oś2)

❾ Kompatybilny z Spring Framework

głównych problemów:

❶ nie obsługuje orkiestracja & WS Transakcje jeszcze

❷ Nie obsługuje WSDL 2.0 jeszcze

Wiosną WS:

Key Pozytywne:

❶ Najlepszy w zakresie wspierania kontrakt pierwszego stron internetowych podejście rozwoju

❷ wymusza Standardy & Dobrych Praktyk przez Ograniczeń ramowych (nie ma wyjścia z tego &, a więc także ograniczenia)

❸ Obsługuje Wiosenne adnotacje jak JAX-WS

❹ Najmniej kod z punktu widzenia programisty

❺ Najlepszy wyrównany ze sprężyn Stos (podobne stosu architektoniczny jako wiosennym MVC) oraz Spring Bezpieczeństwa

Key obawy:

❶ liczba Najmniej WS- * Specyfikacja obsługiwane (nie w pełni zgodne z JAX-WS)

❷ Wiosna oferuje się jako standardowe & stąd inne ramy Java zgodne wspierać lepsze standardy wsparcia

❸ wspierać Tylko kontraktu pierwszego Web Services Development model

Źródło: https://dzone.com/articles/apache-cxf-vs-apache-axis-vs

+5

Należy wspomnieć odpowiedź pochodzi stąd: https://dzone.com/articles/apache-cxf-vs-apache-axis-vs –

+0

Ponownie podkreślając ten sam punkt. Proszę podać oryginalne źródło. – Espresso

Powiązane problemy