0

現在、pax-runner を使用して多数のバンドルを equinox にデプロイしています。バンドルはフォルダー内にあり、これへのパスは args ファイルでランナーに渡されます。私が抱えている問題は、バンドルの同じ展開が Linux とは異なる順序で Windows で開始されることです。Windows ではすべて問題ありませんが、Linux ではバンドルがランダムな順序で開始されているように見えます。この結果、一部のバンドルが間違った順序で記述され、エラーが発生します。たとえば、jersey-server が jersey-core の前に開始されるため、NPE を取得します。なぜこれが起こるのか、誰でも説明できますか? 特定のバンドルの開始順序を指定する必要がありますか?

4

1 に答える 1

3

バンドルのディレクトリをスキャンするだけなので、ランダムな順序はわかりません。しかし、確かにその順序に頼るべきではありません。OSGi のベスト プラクティスでは、開始順序にまったく依存してはならないと言われていますが、それなしでは終了できない場合は、別の手段を使用して開始順序を指定する必要があります。たとえば、開始順序ごとに異なるフォルダーにバンドルを配置し、構成されたディレクトリごとに開始順序を指定できます。

于 2010-11-03T14:38:51.000 に答える