[wsdl] Apache CXF와 Axis의 차이점

Apache Axis보다 Apache CXF를 사용하고 그 반대의 장점은 무엇입니까?



답변

명심하십시오 (CXF의 PMC 의장).

엄격히 “프로젝트가 내가해야 할 일을 할 수 있을까”관점에서 볼 때, 둘 다 상당히 동등합니다. CXF가 Axis 2가 할 수없고 그 반대도 할 수있는 몇 가지 “에지 사례”가 있습니다. 그러나 사용 사례의 90 %가 제대로 작동합니다.

따라서 “확인란 기능”외에 다른 많은 것들이 있습니다.

  • API-CXF는 “표준 기반”API (JAX-WS 호환)를 추진하는 반면 Axis2 일반은 독점적 인 것들을 지향합니다. 즉, CXF조차도 JAX-WS 스펙 외부의 다양한 것을 구성 / 제어하기 위해 독점 API를 사용해야 할 수도 있습니다. REST의 경우 CXF는 독점적 인 것 대신 표준 API (JAX-RS 호환)를 사용합니다. (예, Axis2의 JAX-WS 런타임을 알고 있지만 툴링 및 문서 및 모든 것이 대상이 아닙니다)

  • 커뮤니티 측면 및 지원 가능성-CXF는 사용자가 문제에 대응하고 “수정 팩”을 제공하는 것에 자부심을 가지고 있습니다. CXF는 2.0.x에 대해 12 개의 수정 팩 (2 년 전에 릴리스되었으므로 약 2 개월마다), 6 개의 수정 팩을 2.1.x에, 이제 3은 2.2.x에 대해 수행했습니다. Axis2는 실제로 이전 버전을 “지원”하지 않습니다. “중요한”문제가 발생하지 않는 한, 다음 큰 릴리스 (평균 9-10 개월 정도)가 나올 때까지 기다려야 수정 사항을 얻을 수 있습니다. (하지만 어느 쪽이든 소스 코드를 잡고 직접 패치 / 수정할 수 있습니다. 오픈 소스를 좋아해야합니다.)

  • 통합-CXF는 Spring을 사용하는 경우 훨씬 나은 Spring 통합을 제공합니다. 모든 구성은 Spring을 통해 수행됩니다. 또한 사람들은 CXF를 다른 응용 프로그램에 대해 “내장 가능한”것으로 생각하는 경향이 있습니다 (이 시점에서 Axis2를 본 적이 없습니다). 그런 것들이 당신에게 중요한지 확실하지 않습니다.

  • 성능-둘 다 잘 수행합니다. Axis2의 독점 ADB 데이터 바인딩이 CXF보다 약간 빠르다고 생각하지만 JAXB (표준 기반 API를 다시 사용)를 사용하면 CXF가 약간 더 빠릅니다. WS-Security와 같은보다 복잡한 시나리오를 사용하는 경우 기본 보안 “엔진”(WSS4J)은 둘 다 동일하므로 성능이 완전히 비슷합니다.

그 질문에 전혀 대답이 있는지 확실하지 않습니다. 적어도 정보를 제공하기를 바랍니다.

🙂


답변

  • Axis2 : 시장에서 더 많은 유비쿼터스를 제공하고 더 많은 바인딩을 지원하며 C / C ++와 같은 다른 언어를 지원합니다.
  • CXF : 사용이 훨씬 쉽고 봄에 친숙하며 일부 WS- * 확장을 더 빠르게 지원합니다.

답변

한 가지 더 중요한 것은 커뮤니티의 활동입니다. axis 및 cxf (2013)의 메일 링리스트 트래픽을 비교하십시오.

따라서 이것이 사용의 지표라면 축은 cxf보다 훨씬 덜 사용됩니다.

ohloh에서 CXF 및 Axis 통계를 비교하십시오 . CXF의 활동은 매우 높지만 Axis의 활동은 전반적으로 낮습니다.

CXF (빨간색) 및 Axis1 (녹색) Axis2 (파란색)의 시간 경과에 따른 커밋 수에 대한 차트입니다.
여기에 이미지 설명을 입력하십시오


답변

CXF의 장점 :

  1. CXF는 WS-Addressing, WS-Policy, WS-RM, WS-Security 및 WS-I BasicProfile을 지원합니다.
  2. CXF는 JAX-WS API를 구현합니다 (JAX-WS 2.0 TCK에 따름).
  3. CXF는 Spring 및 기타 프레임 워크와 더 잘 통합됩니다.
  4. CXF는 인터셉터 전략 측면에서 확장 성이 뛰어납니다.
  5. CXF는 번거로운 XML 파일 대신 API를 통해보다 구성 가능한 기능을 제공합니다.
  6. CXF에는 바인딩 : SOAP, REST / HTTP가 있으며 해당 데이터 바인딩은 JAXB 2.0, Aegis를 지원하며 기본적으로 JAXB 2.0 및보다 가까운 Java 표준 사양을 사용합니다.
  7. CXF에는 풍부한 툴킷이 있습니다 (예 : Java에서 WSDL로, WSDL에서 Java로, XSD에서 WSDL로, WSDL에서 XML로, WSDL에서 SOAP로, WSDL에서 서비스로).

Axis2의 장점 :

  1. Axis2는 또한 WS-Policy를 제외하고 WS-RM, WS-Security 및 WS-I BasicProfile을 지원합니다. 향후 버전에서도 지원 될 것으로 예상됩니다.
  2. Axis는 사용자가 선택할 수있는 더 많은 데이터 바인딩 옵션을 제공합니다
  3. Axis2는 C / C ++ 버전 및 Java 버전을 포함한 여러 언어를 지원합니다.
  4. Axis2는 XMLBeans, JiBX, JaxMe 및 JaxBRI 및 자체 고유 데이터 바인딩 ADB를 포함한 광범위한 데이터 바인딩을 지원합니다. CXF보다 긴 역사.

요약 : 위의 장점 항목을 통해 Axis2와 CXF를 자체 장점과 비교할 수있는 좋은 생각을 갖게되었습니다. 그들은 모두 특정 분야에서 서로 다른 잘 개발 된 영역을 가지고 있으며, CXF는 매우 구성 가능하고 통합 가능하며 풍부한 툴 키트를 지원하며 Java 커뮤니티와 밀접한 관련이 있습니다. 여러 프로그래밍 언어에 걸쳐 있습니다. Axis2는 독립성이므로 다른 응용 프로그램과 독립적으로 독립적 인 웹 서비스에 적합하며 다양한 기능을 제공합니다.

개발자는 올바른 프레임 워크를 선택하기 위해 관점을 조정해야합니다. 어떤 프레임 워크를 선택하든 적극적이고 안정적인 오픈 소스 커뮤니티의 이점이 있습니다. 성능 측면에서 동일한 기능을 기반으로 테스트를 수행하고 동일한 웹 컨테이너에서 구성한 결과 CXF가 Axis2보다 약간 더 나은 성능을 보였으며 단일 사례는 해당 기능과 성능을 정확하게 반영하지 않을 수 있습니다.

일부 연구 기사에서 Axis2의 독점 ADB 데이터 바인딩은 추가 기능 (WS-Security)이 없기 때문에 CXF보다 약간 빠릅니다. Apache AXIS2는 상대적으로 가장 많이 사용되는 프레임 워크이지만 Apache CXF는 개발 용이성, 현재 업계 동향, 성능, 전체 스코어 카드 및 기타 기능을 고려하여 다른 웹 서비스 프레임 워크보다 점수가 높습니다 (Web Services Orchestration 지원이 명시 적으로 필요하지 않은 경우 여기에서는 필요하지 않음) )


답변

내 경험에 따르면 CXF는 Spring 환경으로 구성하는 측면에서 우수합니다. 또한 생성 된 클래스는 이해하기 쉽습니다. 또한 AXIS 또는 AXIS2와 비교할 때 더 적극적으로 지원을받습니다.


답변

CXF의 또 다른 장점 : 기본적으로 NTLMV2 인증을 사용하여 웹 서버에 연결합니다. (Windows 2008 이상에서 사용) CXF를 사용하기 전에 Axis2를 해킹하여 HTTPClient V4 + JCIFS를 사용하여이를 가능하게했습니다.


답변