Невозможно получить значения конфигурации OSGi - PullRequest
0 голосов
/ 16 июня 2019

Я создал обработчик событий и использовал конфигурацию OSGi, как показано ниже.

@Component(immediate = true,
        service=EventHandler.class,
        property= {
                EventConstants.EVENT_TOPIC + "=" + ReplicationAction.EVENT_TOPIC
        }
)
    @Designate(ocd = PagePublishEventHandler.Configuration.class)
    public class PagePublishEventHandler implements EventHandler {

        private static String rootPage = "";
        @Override
        public void handleEvent(final Event event) {

        }

        @Activate
        @Modified
        public void activate(Configuration config) {
            String rootPage = config.getPath();
            logger.info("********ConfigurationPropertyInterface**********activate**********************");
            logger.info("********rootPage********",rootPage);        
        }

        @ObjectClassDefinition(name="AEM Plugin OSGi Configuration")
        public @interface Configuration {
            @AttributeDefinition(
                    name = "Root Page For Web Site",
                    description = "Configurable paths for root page",
                    type = AttributeType.STRING
            )
            String getPath() default "/content";


        }

    }

Внутри метода активации значение rootPage всегда пусто.У кого-нибудь есть решение по этому вопросу.

Благодарю

1 Ответ

0 голосов
/ 16 июня 2019

Я запустил ваш код на своей машине и не вижу никаких проблем с ним, за исключением следующих вещей, которые я заметил.

  1. rootPage определяется как статическая переменная. Хотя это не является причиной рассматриваемой проблемы, это может вызвать проблемы во время выполнения.
  2. Вы не печатаете значение rootPage в своем журнале (возможно, именно поэтому вы думаете, что значение равно нулю?). Чтобы напечатать его, используйте спецификаторы формата, как показано ниже.

logger.info("********rootPage******** {}",rootPage);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...