うまくいけばJAX-WSを使用して、バックエンドとフロントエンドを明確に分離したOSGiアプリケーションを開発する必要があります。Google の結果は、JAX-WS をサポートするApache-CXFを指しています。アプリケーションのバックエンドとフロントエンドは、別々の Equinox OSGi コンテナーを持つ 2 つの JVM で実行されます。Apache-CXF を Equinox と統合する標準的な方法はありますか? これには Tomcat や Equinox に埋め込まれた Jetty のようなサーブレット コンテナも必要ですか? または、これを行うためのより便利で動作することが証明された方法はありますか?
2 に答える
OSGi で CXF を使用する最も簡単で実績のある方法は、Apache Karaf を使用することです。これは、Equinox または Felix に基づく OSGi サーバーであり、CXF、Camel、ActiveMQ などのいくつかの Apache フレームワークとの統合用に最適化されています。
普通の Equinox を使用したい場合は、上記の DOSGi ディストリビューションが出発点として適しています。CXF に基づく分散 OSGi を実行するために必要なすべてのバンドルが含まれています。これは、ほとんどの CXF JA-XWS ユース ケースにも適していることを意味します。
一方、Karaf では、すべての CXF モジュールとの統合が大幅に改善されています。また、Servicemix や、私が働いている Redhat や Talend などのいくつかの商用ソリューションに使用されているため、テストもはるかに優れています。
あなたの特別なケースでは、分散 OSGi 自体も非常に良い選択肢かもしれません。これは、CXF サービスを直接提供/消費しないことを意味します。代わりに、OSGi サービスを公開して使用すると、CXF がリモーティングを処理します。
Apache karaf で CXF を使用する方法を示すチュートリアル シリーズを作成しました。