CXF 또는 Spring-WS가 더 나은 프레임 워크는 무엇입니까? [닫은]


80

웹 서비스를 위해 CXF와 Spring-WS를 연구 / 비교하는 과정에 있습니까? WS의 공급자이자 소비자로서의 역할을 모두해야합니다. 요컨대 Spring-WS가 더 구성 가능하지만 CXF가 시작하고 실행하기가 더 쉽다고 들었습니다. 이 질문은 주관적이지만 내 연구에 도움이 될 것입니다.

  • 이러한 프레임 워크에 대해 어떤 경험이 있습니까?
  • 두 프레임 워크 모두에서 함정에 빠진 적이 있습니까?
  • 둘 중 하나가 제공하는 유용한 기능 중 다른 하나가 제공하지 않을 수있는 기능을 찾았습니까?

답변:


21

나는 가장 큰 차이점은 봄-WS는 생각 나는 CXF는 일반적으로 '계약 마지막'이라고 생각하면서 '계약 첫 번째'.

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

Contract-last는 Java 코드로 시작하므로 일반적으로 시작하기가 더 쉽습니다.

그러나 생성 된 WSDL은 더 취약한 경향이 있습니다.


19
JAX-WS는 심각한 개발을하는 사람들이 그것을 사용하는 방식 인 계약 우선 접근 방식을 지원합니다. 따라서 JAX-WS 스택과 Spring WS를 구별하는 좋은 방법은 아닙니다. 실제로 Spring WS는 JAX-WS와 비교되지 않으며 Spring WS는 최소한의 WS 스택 일뿐입니다.
Pascal Thivent

80

Apache CXF 정보 :

  • CXF는 SOAP, WSI 기본 프로필, WSDL, WS-Addressing, WS-Policy, WS-ReliableMessaging, WS-Security, WS-SecurityPolicy 및 WS-SecureConversation을 포함한 여러 표준을 지원합니다.
  • Apache CXF는 계약 마지막 (Java로 시작) 및 계약 우선 (WSDL로 시작) 접근 방식을 모두 제공합니다.
  • Apache CXF는 JAX-WS 및 JAX-RS를 구현합니다.

Spring WS 정보 :

  • Spring WS는 XSD 스키마에서 시작하여 "오직"계약 우선을 제공합니다.
  • Spring WS는 SOAP, WS-Security, WS-Addressing을 지원합니다.

그래서 결국 Spring WS를 최소한의 웹 서비스 프레임 워크라고 생각하지만 (제 생각에는) Apache CXF (Spring과 매우 잘 통합됨)에 비해 어떤 이점도 없다고 생각합니다. 둘 사이에서 Apache CXF를 선택합니다.


34

CXF는 어떤 식 으로든 계약 (WSDL)으로 시작하는 것을 방해하지 않습니다. 이 두 제품을 모두 사용하여 웹 서비스를 구축했습니다.

CXF에서는 Maven과 Maven 플러그인을 사용하여 wsimport 목표를 호출 하여 SEI (인터페이스)를 생성했습니다. 실제 서비스 로직을 포함하도록 인터페이스를 구현하고 bean 구현 beans.xml을 구성한 후 Maven이 배포를 위해이를 war 파일로 패키징하도록했습니다. 전체 운동이 더 쉬울 수는 없습니다.

Spring-WS가 JAX-WS의 부족을 능가하는 이점을 제공한다고 생각하지 않습니다. CXF는 이미 Spring을 사용하여 bean을 연결하고 JAX-WS의 전체 구현도 가지고 있습니다.


12

CXF에 대한 경험이 있으며 이전 XFire 이며 견고하고 빠르며 (WS 생성 및 실행) 안정적인 프레임 워크로 권장 할 수 있습니다.

CXF에서 만날 수있는 문제에 대해서는 내 게시물 /programming/289977/recommended-framework-for-java-web-services#290205를 참조하십시오. 그리고 저는 툴킷에 동의합니다. 프레임 워크 간의 가장 큰 차이점은 다음과 같습니다. 이념적으로 : 첫 번째 코드 (예 : 인터페이스) 또는 계약 (예 : wsdl)은 무엇입니까? 여기에서 몇 가지 세부 정보를 참조하십시오.



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.