我正在尝试在我的项目中使用getSlingScriptHelper()。getService但它一直返回null。我已经在其他项目中完成了这个,并且实现类似。我们正在项目中使用AEM 6.3。我的代码如下:
FOOModel :
public class FOOModel extends WCMUsePojo {
private static final Logger LOGGER = LoggerFactory.getLogger(FOOModel.class);
private String foo;
@Override
public void activate() throws Exception{
FOOInterface fooInterface = getSlingScriptHelper().getService(FOOInterface.class);
LOGGER.info("FOOInterface value is : " + fooInterface);
}
public String getFoo() {
return foo;
}
}
FooInterface :
public interface FOOInterface {
public String getFoo();
}
FOO实施:
@Component(metatype = true, immediate = true, label = "FOO Configuration", description = "OSGi Configuration FOO")
@Service(FOOInterface.class)
public class FOOImpl implements FOOInterface {
@Property(label = "FOO", description = "FOO to be provided")
public static final String FOO_URL = "foo.url";
private String foo;
@Activate
public void activate(ComponentContext componentContext){
Dictionary<?, ?> props = componentContext.getProperties();
this.foo = PropertiesUtil.toString(props.get(FOO_URL), StringUtils.EMPTY);
}
@Override
public String getSsoUrl() {
return foo;
}
}
日志显示&#34; FOOInterface值为:null&#34;。
我已经尝试了使用类注入方法的吊索模型,但它也没有用。
答案 0 :(得分:1)
很可能您的FOOInterface
服务无效。您可以查看/system/console/components
以查看其状态。
可能未正确安装包含该服务的捆绑包。您可以在/system/console/bundles
。