2

私は現在 karaf のバンドルを開発していますが、いくつか質問があります...

cxf に基づいてバンドル/Web サービスを作成しました。それを karaf にデプロイしようとしましたが、一部のパッケージを解決できなかったため、そのバンドルを開始できませんでした。

org.osgi.framework.BundleException: バンドル org.springframework.aop [56] の未解決の制約: 56.0 を解決できません: 要件 [56.0] パッケージがありません。(&(package=org.aopalliance.aop)(バージョン>=1.0.0)(!(バージョン>=2.0.0)))

ここで質問です。このパッケージの依存関係は spring-aop (3.1.0.RELEASE) から来ているので、どこに問題があるのでしょうか? どの依存関係が欠落していますか?どうすればそのような問題を解決できますか?

その場合、私は開発プロセスを明確に理解していませんでした。デプロイで不足しているすべてのバンドルをデプロイする必要がありますか? 開発したバンドルからサードパーティのライブラリを分離したままにしたいからです。そして、どのバンドルをデプロイする必要がありますか? 試行錯誤のプロセスですか?Mavenに依存関係をさせる一般的な方法はありますか?

「システム」フォルダーを発見し、それがmavenのようなリポジトリであることをドキュメントで読みましたが、それは機能のためですか?

テストケース用に、事前にデプロイされたバンドルを含む karaf を用意し、Web サービスバンドルをその中に入れましたが、やはり例外...

原因: java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet

どの依存関係が欠落していますか?

camel と karaf に関するチュートリアルは既に読みましたが、デプロイに関する説明がなかったので、誰か良いチュートリアルを教えてもらえませんか?

ありがとう!クリス

4

2 に答える 2

7

簡潔な答え

「camel-cxf」を参照している部分まで下にスクロールし、features:addurl と features:install の 2 つのコマンドを実行します。これですべての問題が解決すると思います。


春のAOP

Karaf コンソールで次のように入力します。

exports | grep org.aopalliance.aop

次のような行が表示されると思います。

XX org.aopalliance.aop; version=3.1.0.RELEASE

したがって、spring-aop バンドルには正しいパッケージが含まれていますが、それらは間違ったバージョンであり、要求されている範囲は >=1.0.0 および <2.0.0 であるため、3.1.0 はそれを満たしていません。


デプロイ/インストール

バンドルを ${karaf.home}/deploy にドロップするか、コンソールを使用できます。

次のコマンドを使用して、Karaf コンソールから Maven バンドルをインストールできます。

install -s mvn:groupId/artifactId/version/packaging/classifier

バンドルの開始場所-sとパッケージング/分類子はオプションです。

ここでOSGi対応のmaven依存関係をたくさん見つけることができますhttp://ebr.springsource.com/repository/app/

Karaf の機能について読んでください。基本的には、インストールできるバンドルのスイートをリストした XML ファイルです。多数のバンドルをデプロイするのに非常に便利で、Maven リポジトリにインストールできます。

Karaf で利用できる標準機能がいくつかあります。試してみてください。

features:install war

これにより、jetty webcontainer が提供され、適切なバージョンである限り ClassNotFoundException: javax.servlet.http.HttpServlet が解決される場合があります。

Camelには、おそらくすべての問題をソートする機能ファイルもあります。これを試してください:

features:addurl mvn:org.apache.camel.karaf/apache-camel/2.9.0/xml/features
features:install camel-cxf

チュートリアル

http://karaf.apache.orghttp://fusesource.comにいくつかありますが、Karaf ディストリビューションに含まれている PDF マニュアルも参照してください。情報が古い可能性があることに常に注意してください

于 2012-03-02T13:08:15.247 に答える
-1

MANIFEST.MF ファイルを投稿してください。maven-bundle-plugin 依存関係のタグについて言及していないと思います。

于 2014-01-01T06:47:49.980 に答える