2011-07-22 21 views
2

OSGiからWebサービスクライアントを取得しようとしていますが、私はFelixをコンテナとして使用しています。OSGi SOAP Webサービスクライアント

これまでのところ、私はApache CXFを使ってみました。これは私のWebサービスではRPC /エンコードされ、スタブを生成しようとするとサポートされないので動作しません。私はスタブを生成するためにApache Axisを使用しましたが、現在はバンドル内の依存関係に問題があります。私のバンドルがデプロイされるので、私はApacheのバンドルの依存関係に依存します。

私は自分のビルドにmavenを使用していますが、bundleallの目標を持つmaven-bundle-pluginを使用して依存関係のバンドルを取得しましたが、バンドルの依存関係に問題が残っています。私は本当にosgiを使用したいと思います。バンドルによるプラグイン可能な性質はまさに私が必要とするものですが、バンドルの依存関係を追うのに多くの時間を費やしています。

依存関係を解決する方法を含め、OSGiからSOAP Webサービスを使用するという明確な例はありますか?

答えて

1

あなたの人生を楽にするには、fuse esb(apache servicemix)またはkarafを試してみてください。フェリックスはOSGiの最小限のコンテナですが、KarafはFelixであり、すでに展開されている最も重要なバンドルが多数あります。ヒューズ(servicemixとも呼ばれる)は、より多くのバンドルを持つkarafです。ヒューズはcxfに付属しているので、あなたはそれを混乱させる必要はありません。

フェリックスを本当に使いたい場合は、mavenバンドルのプラグイン設定と、フェリックスで動作しているバンドルのリストを投稿してください。私はかなり長い間JAX-RS Webサービスを提供するためにFelix/KarafでCXFを使用してきましたが、これは非常に強力なソリューションです。

+0

おかげさまで、多くのことを試してみましたが、使用しているwsdlsがRPC/encodedであるため、実際に軸を使ってスタブを生成する必要があることを思い出しました。だから、私はapacheの周りのバンドルを解決する問題を得る。私が解決しようとしている現在のバンドルは、パッケージorg.apache.axiom.om – broschb

+0

です。私はカラフに移動しました。物事は少し良くなっています。実際にバンドルをインストールできます。しかし、私がバンドルアクチベータでテストするために実際にwebservice呼び出しを呼び出そうとすると、noClassDefFoundErrorが返されます。以下はスタックトレースですが、バンドルのクラスパスがどのようにロードされているかを見る方法はありますか?またはこれを追跡する最善の方法は何ですか?私はバンドルで利用できるクラスを持っていますが、正しくロードされていません。 java.lang.ClassNotFoundException:javax.xml.streamによって引き起こさjava.lang.ClassLoader.defineClass1(ネイティブメソッド) でのjavax/XML /ストリーム/ UTIL/StreamReaderDelegate \t: – broschb

+0

スタックトレース java.lang.NoClassDefFoundErrorが。 util.StreamReaderDelegateが見つかりませんでした。org.apache.ws.commons.axiom.axiom-api [138] \t org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:787) – broschb

0

maven-bundle-pluginのbundleallの目標は、すべての依存関係のバンドルを生成します。ただし、依存関係を解決するためにインストールする必要がある順序は表示されません。依存性を扱う優れたジョブを行う1つのOSGi実装はVirgo Web Server from the Eclipse Foundationです。 Virgoを使うと、bundleallのゴールによって生成されたすべてのバンドルを直接リポジトリ/ usrフォルダにコピーし、サービスをpickupフォルダに置くことができます。ランタイムは依存関係の解決を処理します。私は過去にこのプロセスを成功させました。

関連するメモで、珍しい依存関係がない限り、SrpingSource Enterprise Bundle Repositoryからの依存関係の追加を検討する必要があります。

関連する問題