Khung công tác nào tốt hơn CXF hoặc Spring-WS? [đóng cửa]


80

Tôi đang trong quá trình nghiên cứu / so sánh CXF và Spring-WS cho các dịch vụ web? Tôi cần phải hoạt động với tư cách vừa là nhà cung cấp vừa là người tiêu dùng WS. Tóm lại, tôi được biết rằng Spring-WS có thể cấu hình cao hơn, nhưng CXF dễ thiết lập và chạy hơn. Câu hỏi này là chủ quan, nhưng sẽ giúp định hướng cho tôi trong nghiên cứu của mình.

  • Bạn có kinh nghiệm gì với một trong hai khuôn khổ này?
  • Bạn đã gặp phải bất kỳ cạm bẫy nào với một trong hai khuôn khổ chưa?
  • Bạn đã tìm thấy bất kỳ tính năng hữu ích nào được cung cấp bởi cái mà có thể không được cung cấp bởi cái khác chưa?

Câu trả lời:


21

Tôi nghĩ sự khác biệt lớn nhất là Spring-WS chỉ là 'hợp đồng đầu tiên' trong khi tôi tin rằng CXF thường là 'hợp đồng cuối cùng'.

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

Hợp đồng cuối cùng bắt đầu bằng mã Java, vì vậy nó thường dễ dàng hơn để bắt đầu.

Tuy nhiên, WSDL mà nó tạo ra có xu hướng dễ vỡ hơn.


19
Tôi tin rằng JAX-WS hỗ trợ phương pháp tiếp cận theo hợp đồng, đó là cách mà những người làm phát triển nghiêm túc đang sử dụng nó. Vì vậy, đó chắc chắn không phải là cách tốt để phân biệt ngăn xếp JAX-WS và Spring WS. Trên thực tế, Spring WS không so sánh với JAX-WS, Spring WS chỉ là một ngăn xếp WS tối giản.
Pascal Thivent

80

Giới thiệu về Apache CXF:

  • CXF hỗ trợ một số tiêu chuẩn bao gồm SOAP, WSI Basic Profile, WSDL, WS-Addressing, WS-Policy, WS-TrustMessaging, WS-Security, WS-SecurityPolicy và WS-SecureConversation.
  • Apache CXF cung cấp cả phương pháp tiếp cận hợp đồng cuối cùng (bắt đầu với Java) và hợp đồng đầu tiên (bắt đầu với WSDL).
  • Apache CXF triển khai JAX-WS và JAX-RS.

Giới thiệu về Spring WS:

  • Spring WS cung cấp hợp đồng "chỉ" đầu tiên, bắt đầu từ một Lược đồ XSD.
  • Spring WS hỗ trợ SOAP, WS-Security, WS-Addressing.

Vì vậy, cuối cùng, tôi thấy Spring WS là một khung dịch vụ web tối thiểu nhưng cho rằng nó không (theo ý kiến ​​của tôi) có bất kỳ lợi thế nào so với Apache CXF (tích hợp rất tốt với Spring). Giữa cả hai, tôi sẽ chọn Apache CXF.


34

CXF, theo bất kỳ cách nào, không ngăn cản bạn bắt đầu với một hợp đồng (WSDL). Tôi đã sử dụng cả hai sản phẩm này để xây dựng một dịch vụ web.

Trong CXF, tôi đã sử dụng Maven và plugin Maven, gọi mục tiêu wsimport để tạo SEI (giao diện) mà sau đó tôi đã triển khai. Sau khi triển khai giao diện để chứa logic dịch vụ thực tế và định cấu hình chương trình thực thi bean.xml của tôi, sau đó tôi để Maven đóng gói nó thành một tệp chiến tranh để triển khai. Toàn bộ bài tập không thể dễ dàng hơn.

Tôi không nghĩ Spring-WS cung cấp bất kỳ lợi thế nào vượt trội hơn sự thiếu hụt của JAX-WS. CXF đã cho phép bạn sử dụng Spring để kết nối các bean của mình và cũng có triển khai đầy đủ JAX-WS.


12

Chúng tôi đã có kinh nghiệm với CXF và phiên bản tiền nhiệm của nó là XFire và tôi có thể giới thiệu nó là khuôn khổ vững chắc, nhanh chóng (tạo và thực thi WS) và đáng tin cậy.

Về các vấn đề mà bạn có thể gặp với CXF, hãy xem bài đăng của tôi /programming/289977/recommended-framework-for-java-web-services#290205 Và tôi đồng ý với bộ công cụ , rằng sự khác biệt lớn nhất giữa các khung là về mặt ý thức hệ: mã đầu tiên (tức là giao diện) hoặc hợp đồng (tức là wsdl) là gì. Xem một số thông tin chi tiết tại đây:



Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.