3

org.apache.httpパッケージを必要とするosgiバンドルを開発しています。ターゲットプラットフォームには、これらのパッケージを含むhttpcommponentsバンドルがあります。これは、バンドルのマニフェストでこれらの依存関係を宣言し、eclipseがプラグインの依存関係リストにバンドルを自動的に追加したときにそれらを確認したためです。問題は、私がコンパイルエラーを受け取ることimport org.apache.httpです。バンドルを調べると、パッケージorg.apache.httpにActivatorしかなく、libフォルダーに必要なパッケージのjarファイルがあります。これらのパッケージにアクセスするにはどうすればよいですか?アクティベーターを起動して、実行時に必要なクラスを取得しますか?解決策は、org.apache.httpjarをバンドルのビルドパスに手動で追加することです。ばかげた質問ならごめんなさい...

ありがとう

4

2 に答える 2

1

ビルドの問題に関して、この質問を確認することをお勧めします。ターゲットプラットフォームを構築した人は誰でも間違ったアプローチを取っています。それがあなたの悲しみを引き起こしています。

ターゲットプラットフォームは、実際にはコモンズライブラリのOSGiバージョンを使用する必要があります。OSGi対応バージョンが利用できない場合は、 Springsourceバンドルリポジトリから入手できます。

これが(この問題を修正するために)可能でない場合は、ビルドのクラスパスを変更して、適切なライブラリを含めることができます。関係なく、実行時にすでに機能しているはずです。

PS-それはばかげた質問ではありません;-)

于 2012-04-19T16:19:48.887 に答える
0

基本的に、バンドルを起動しようとするときに、OSGiコンテナーがorg.apache.httpバンドルを実行することを確認する必要があります。これを行うにはいくつかの方法があります。jarを手動でデプロイディレクトリにコピーするか、OSGiバンドルリポジトリ(OBR)のようなものを使用することができます。OBRを使用すると、バンドルをインストールすると、そのすべての依存関係もダウンロードおよびインストールされます。

Maven OSGiプラグインを使用して、独自のOBRをホストできます。これにより、バンドルのマニフェストファイルが読み取られ、その情報を使用してローカルOBRが作成されます。次に、コンソールからOBRを使用して、すべての依存関係を含むバンドルをインストールできます。

于 2012-04-18T17:35:44.800 に答える