2013-02-20 3 views
2

Я разрабатываю приложение Java для управления событием в среде OSGi. Тем не менее, у меня есть предупреждение, как следующее:Blacklisting ServiceReference

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

Я знаю, что я мог бы решить эту проблему с помощью свойств сервера OSGi. Тем не менее, я хотел бы решить его с помощью кода. Но я не знаю, как мне управлять обработчиком событий в моем классе Java, чтобы избежать этой проблемы. Может ли кто-нибудь помочь мне в этом вопросе?

Большое спасибо заранее

ответ

4

Проблема, которая сообщается довольно плохо, обработчик события вызывается и не возвращается.

Таким образом, единственный выход из этого - выяснить, почему этот обработчик не возвращается из метода события. Объект, который не возвращается, идентифицируется ServiceReference.

+0

Я обычно получаю это, когда отлаживаю. Если я поставлю точку останова в «EventHandler», то в значительной степени гарантируется, что я перебью тайм-аут (будучи большим, глупым и медленным человеком!) И попал в черный список. Для этих сценариев вы можете отключить таймаут через конфигурацию, но не рекомендуется оставлять его таким образом в процессе производства, потому что 'EventHandler' действительно должны немедленно возвращаться. –

2

Я согласен с Петром, что вы должны убедиться, что EventHandler сек возвращение в разумный промежуток времени (например, путем пинать дополнительной работы в фоновом потоке.)

Однако, это может быть полезно, чтобы отключить черный список иногда, например, во время отладки (как указано Neil.)

Судя по сообщению об ошибке, вы используете Felix Event Admin, который отвечает как на свойства структуры, так и на config admin.

  • Вы можете установить системное свойство org.apache.felix.eventadmin.Timeout=0 отключить черный список, или
  • вы можете использовать Администратор конфигурации, чтобы установить то же свойство, используя PID org.apache.felix.eventadmin.impl.EventAdmin. Если вы работаете с различными конфигурациями для отладки и выпуска, это может быть путь.
Смежные вопросы