3

OSGiフレームワークでイベントを管理するためにJavaアプリケーションを開発しています。ただし、次のような警告があります。

WARNING: EventAdmin: Blacklisting ServiceReference [[org.osgi.service.event.EventHandler] | Bundle(Scheduler [1])] due to timeout!

OSGiサーバーのプロパティを使用して問題を解決できることはわかっています。しかし、私はそれをコードで解決したいと思います。しかし、この問題を回避するために、Javaクラスでイベントハンドラーを管理する方法がわかりません。誰かがこの問題で私を助けることができますか?

事前にどうもありがとうございました

4

2 に答える 2

4

報告された問題は非常に悪く、イベントハンドラーが呼び出され、戻りません。

したがって、これを回避する唯一の方法は、このハンドラーがイベントメソッドから返されない理由を見つけることです。返されないオブジェクトは、ServiceReferenceによって識別されます。

于 2013-02-20T07:57:10.550 に答える
2

私はPeterに同意します。これは、妥当な時間内に確実EventHandlerに戻るようにする必要があります(たとえば、バックグラウンドスレッドで追加の作業を開始することによって)。

ただし、デバッグ中(Neilが述べているように)など、ブラックリストをオフにすることが役立つ場合があります。

エラーメッセージから判断すると、フレームワークのプロパティと構成管理の両方に応答するFelixEventAdminを使用しています。

  • org.apache.felix.eventadmin.Timeout=0ブラックリストを無効にするようにシステムプロパティを設定するか、または
  • 構成管理を使用して、PIDを使用して同じプロパティを設定できますorg.apache.felix.eventadmin.impl.EventAdmin。デバッグビルドとリリースビルドで異なる構成で実行している場合は、これが最適な方法である可能性があります。
于 2013-02-22T09:52:25.550 に答える