OSGI два экземпляра одного и того же сервиса

У меня есть услуга "А", эта услуга будет потребляться из 11 других компонентов. Если я проверяю все доступные сервисы через консоль osgi, я вижу только один экземпляр и все 11 компонентов, использующих этот сервис.

Но по какой-то странной причине, я не понимаю, два компонента не используют один и тот же экземпляр службы. Если я отлаживаю, я вижу два разных идентификатора. Как это может случиться? И я не делаю ничего упомянутого здесь.

Я решил проблему, установив "Этот компонент немедленно активируется" в затмении. Но, как я красный здесь, это не цель этого флажка. Так что, возможно, кто-то может объяснить, как это произошло в первую очередь и почему это было исправлено с этим включенным.

1 ответ

Решение

Когда вы используете декларативные службы, среда выполнения DS может при определенных обстоятельствах повторно создавать экземпляр вашей службы, обычно потому, что некоторые службы, от которых она зависит, появились / изменились / были удалены, а ссылки статичны. Убедитесь, что все сайты, на которых используется служба A, являются либо статическими, либо динамическими с обоими методами bind / unbind.

Другие вопросы по тегам