无法获取OSGi配置值

时间:2019-06-15 22:02:43

标签: aem

我已经创建了一个事件处理程序,并使用了如下的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";


        }

    }

在activate方法内,rootPage的值始终为空白。有谁对此有解决方案。

我 谢谢

1 个答案:

答案 0 :(得分:0)

我在您的计算机中运行了您的代码,除了以下几点,我看不到任何问题。

  1. rootPage被定义为静态变量。尽管这不是引起问题的原因,但可能会在运行时引起问题。
  2. 您没有在日志中打印rootPage的值(可能是为什么您认为该值为null?)。为了进行打印,请使用如下所示的格式说明符。

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