Program Tip

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

programtip 2020. 10. 7. 08:05
반응형

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


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

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

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

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

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

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


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를 선택합니다.


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

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

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


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

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


Apache CXF :

주요 장점 :

❶ 가장 널리 사용되는 Web Services Standard Now; 현재 점차 Apache CXF로 대체되는 AXIS2에 대한 개선 사항

❷ 직관적이고 사용하기 쉬움 (AXIS2에 비해 코딩 필요 없음)

❸ JAX-WS와 같은 프런트 엔드를 핵심 코드에서 깔끔하게 분리

❹ JAX-WS, JAX-RS 및 기타와 완벽하게 호환

❺ 최소한의 계산 오버 헤드로 사용 가능한 모든 프레임 워크에서 최고의 성능

❻ 다양한 프런트 엔드 모델 지원

❼ JAX-WS 및 JAX-RS 모두 지원 (Resful Services 용)

❽ JBI 및 SDO 지원 (AXIS2에서는 지원되지 않음)

❾ Spring Framework와 호환

주요 관심사 :

❶ 아직 오케스트레이션 및 WS 트랜잭션을 지원하지 않습니다.

❷ 아직 WSDL 2.0을 지원하지 않습니다.

봄 WS :

주요 장점 :

❶ 계약 우선 웹 서비스 개발 접근 방식 지원 측면에서 최고

❷ 프레임 워크 제약에 따라 표준 및 모범 사례를 시행합니다 (이탈 방법이 없으므로 제한도 있음).

❸ Spring Annotations 및 JAX-WS 지원

❹ 개발자 관점에서 본 최소한의 코드

❺ Spring Security를 ​​포함하여 Spring Technology Stack (Spring MVC와 유사한 아키텍처 스택)과 가장 잘 정렬 됨

주요 관심사 :

❶ 지원되는 WS- * 사양의 최소 수 (JAX-WS와 완전히 호환되지 않음)

❷ Spring은 자체 표준으로 제공되므로 다른 Java 호환 프레임 워크가 더 나은 표준 지원을 지원합니다.

❸ 계약 우선 웹 서비스 개발 모델 만 지원

출처 : https://dzone.com/articles/apache-cxf-vs-apache-axis-vs


이 비교에서 고려해야 할 또 다른 옵션은 Enunciate 입니다.

특히 Java로 먼저 시작하려는 경우.


Please take a look at a related post at : Building a web service with Spring-WS

참고URL : https://stackoverflow.com/questions/297033/which-framework-is-better-cxf-or-spring-ws

반응형