我已经创建了一个事件处理程序,并使用了如下的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的值始终为空白。有谁对此有解决方案。
我 谢谢
答案 0 :(得分:0)
我在您的计算机中运行了您的代码,除了以下几点,我看不到任何问题。
rootPage
被定义为静态变量。尽管这不是引起问题的原因,但可能会在运行时引起问题。 logger.info("********rootPage******** {}",rootPage);