179

ApacheAxisよりもApacheCXFを使用すること、およびその逆の利点は何ですか?

4

6 に答える 6

232

私は完全に偏見があることを覚えておいてください(CXFのPMC議長)が、私の考えは次のとおりです。

厳密に「プロジェクトは私が必要なことを実行できるか」という観点からは、どちらもかなり同等です。CXFが実行できる「エッジケース」があり、Axis2は実行できません。その逆も同様です。しかし、ユースケースの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か月ごと)、2.1.xで6個、2.2.xで3個のフィックスパックを実行しました。Axis2は実際には古いバージョンを「サポート」していません。「重大な」問題が発生しない限り、修正を取得するには、次の大きなリリース(平均して約9〜10か月ごと)まで待つ必要がある場合があります。(ただし、どちらの場合でも、ソースコードを入手して、自分でパッチを適用/修正することができます。オープンソースが大好きです。)

  • 統合-Springを使用する場合、CXFのSpring統合ははるかに優れています。すべての構成などはSpringを介して行われます。また、人々は、CXFを他のアプリケーションへのより「埋め込み可能」(私はこの観点からAxis2を見たことがない)と見なす傾向があります。そのようなことがあなたにとって重要かどうかはわかりません。

  • パフォーマンス-どちらも非常に優れたパフォーマンスを発揮します。Axis2独自のADBデータバインディングはCXFよりも少し速いと思いますが、JAXB(標準ベースのAPIも)を使用すると、CXFは少し速くなります。WS-Securityのようなより複雑なシナリオを使用する場合、基盤となるセキュリティ「エンジン」(WSS4J)は両方で同じであるため、パフォーマンスは完全に同等です。

それが質問にまったく答えるかどうかはわかりません。それが少なくともいくつかの情報を提供することを願っています。

:-)

ダン

于 2009-08-07T15:21:06.930 に答える
59
  • Axis2:市場でよりユビキタスであり、より多くのバインディングをサポートし、C /C++のような他の言語をサポートします。
  • CXF:はるかに使いやすく、Springにやさしく、一部のWS-*拡張機能のサポートが迅速になりました。
于 2010-02-25T18:30:20.473 に答える
43

もう一つは、コミュニティの活動です。axisとcxf(2013)のメーリングリストトラフィックを比較します。

したがって、これが使用法の指標である場合、axisはcxfよりもはるかに使用量が少なくなります。

ohlohでCXFとAxisの統計を比較します。CXFのアクティビティは非常に高く、Axisは全体的にアクティビティが低くなっています。

これは、CXF(赤)とAxis1(緑)、Axis2(青)の経時的なコミット数のグラフです。 ここに画像の説明を入力してください

于 2013-04-19T07:50:39.660 に答える
24

CXFの利点:

  1. CXFは、WS-Addressing、WS-Policy、WS-RM、WS-Security、およびWS-IBasicProfileをサポートします。
  2. CXFはJAX-WSAPIを実装します(JAX-WS 2.0 TCKによる)。
  3. CXFは、Springや他のフレームワークとの統合が優れています。
  4. CXFは、インターセプター戦略の点で高い拡張性を備えています。
  5. CXFには、面倒なXMLファイルの代わりに、APIを介してより構成可能な機能があります。
  6. CXFにはバインディング:SOAP、REST / HTTPがあり、そのデータバインディングはJAXB 2.0、Aegisをサポートします。デフォルトでは、JAXB2.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-IBasicProfileもサポートしています。今後のバージョンでサポートされる予定です。
  2. Axisには、選択したデータバインディングのオプションがあります
  3. Axis2は、C /C++バージョンとJavaバージョンを含む複数の言語をサポートしています。
  4. Axis2は、XMLBeans、JiBX、JaxMe、JaxBRI、および独自のネイティブデータバインディングであるADBを含む、より広範囲のデータバインディングをサポートします。CXFより長い歴史。

まとめ:上記の利点項目から、Axis2とCXFをそれぞれのメリットで比較することをお勧めします。それらはすべて、特定の分野でさまざまな十分に開発された領域を持っています。CXFは非常に構成可能で統合可能であり、豊富なツールキットがサポートされており、Javaコミュニティに近いです。Axis2は、多くの点でミニチュアのアプリケーションサーバーに似たアプローチを採用しています。複数のプログラミング言語にまたがっています。Axis2は独立しているため、他のアプリケーションから独立したスタンドアロンのWebサービスに適しており、さまざまな機能を提供します。

開発者として、適切なフレームワークを選択するという私たちの見方を一致させる必要があります。どのフレームワークを選択しても、アクティブで安定したオープンソースコミュニティのメリットが得られます。パフォーマンスに関しては、同じ機能に基づいて同じWebコンテナーで構成されたテストを実行しました。その結果、CXFのパフォーマンスはAxis2よりも少し優れていることがわかりました。単一のケースでは、それらの機能とパフォーマンスが正確に反映されていない可能性があります。

一部の研究記事では、Axis2独自のADBデータバインディングは、追加機能(WS-Security)がないため、CXFよりも少し高速であることが明らかになっています。Apache AXIS2は比較的最も使用されているフレームワークですが、Apache CXFは、開発の容易さ、現在の業界トレンド、パフォーマンス、全体的なスコアカード、およびその他の機能を比較的考慮して、他のWebサービスフレームワークよりも優れています(Webサービスオーケストレーションのサポートが明示的に必要な場合を除き、ここでは必要ありません)。 )。

于 2014-01-31T17:55:44.257 に答える
2

私の経験によると、CXFはSpring環境に構成するという点で優れています。また、生成されたクラスは簡単に理解できます。そして、それがよりアクティブになるにつれて、AXISまたはAXIS2と比較してより良いサポートが得られます。

于 2013-12-20T13:54:09.167 に答える
1

CXFのもう1つの利点は、すぐに使用できるNTLMV2認証を使用してWebサーバーに接続することです。(Windows 2008以降で使用)CXFを使用する前に、Axis2をハッキングしてHTTPClient V4+JCIFSを使用してこれを可能にしました。

于 2014-09-26T16:41:32.527 に答える