2017-10-25 29 views
1

私は分かりにくいOSGIを使用しています。新しいコンポーネントの依存関係に問題があります。それには2つのサービス参照があり、どちらも「不満足」とマークされています。満足しているサービスの満足のいく言及がないOSGIコンポーネント

Component with unsatisfied references

これは、単純な不満を参照の問題だろう、それはそれは、この参照の1つを使用すると、それは満足だ別のコンポーネントがあるという事実のためではなかった、他の上の満足しているコンポーネントでありますシステムも同様です。

satisfied dependencies

私はそれが活性化だ上でこれが問題になる可能性があるかどうかを確認するために「AgentServiceImpl」クラスをデバッグしようとしたが、それの参照が不満足であるため、クラスのメソッドでも呼ばれていません。

このケースで私が間違っていることの手掛かりはありません。この問題に取り組むための修正や提案はありません。

[更新]

私は依存サービスがその上にこの構成はコンポーネント宣言のしている気づいた:私はこれを定義しない場合、それはコンポーネントを構築するべきではない、だから、

policy = ConfigurationPolicy.REQUIRE, configurationPid = "com.rm.ums.ruleengine" 

。しかし、ConfigurationAdminを取得してこの構成を設定しても、コンポーネントはまだ上がることはありません。コンソールにはエラーメッセージが表示されません。この場合、エラーや警告が表示されないようにしてください。開発者はこれが起こっていることを知っているので、それを処理できますか?

+0

が起こった旨のログにあったケースを回避することができるか。それによって – Miles

+0

は私がバンドルstartlevelsを意味 – Miles

+0

私はしました(私たちは明示的にそれを設定しません)しかし、私はこのバンドルをもう一度停止して開始しようとしましたが(他のすべてのサービスが利用可能になった後に)、まだ参照が「不満足」である –

答えて

1

サービス設定の問題が判明しました。

私が注入しようとしていたこのコンポーネントは、「REQUIRE」というポリシーを持っていました。つまり、構成を提供しない限り起動しません。私はConfigurationAdminを使用して別のバンドルに設定を提供していましたが、この設定は必要なものではなくバンドルにバインドされていました。

構成をバンドルにバインドしないように(または手動でバインドを解除するように)構成したら、サービスが正常に開始されました。

おそらくこれはあなたが満たされていないモジュールに低い起動優先順位を与えることを試みたことが警告するメッセージが、これは:(

関連する問題