问题描述
在Osgi组件/服务中,我需要一个资源(页面,CF等)的JSON表示,就像通过Sling模型选择器(resource.model.json)检索它一样。
不幸的是,在Osgi组件或服务中,没有(吊索)请求对象可用。
有没有一种方法可以获取json表示形式(与所有组件的模型导出器一起使用),而无需创建对本地主机的http请求?
解决方法
这不是问题,只要您可以访问资源即可。
首先,您需要确保您的Model可以通过方法调用传递json。有关如何执行此操作的说明,请参见Get .model.json as String。
如果完成此操作,请使用ModelFactory来“ getModelFromResource”。这将为给定资源创建SlingModel的实例。只需调用您之前创建的方法即可获取json。 参见https://sling.apache.org/apidocs/sling10/org/apache/sling/models/factory/ModelFactory.html
您的模型可能应该具有Adaptables = {Resource.class}-如果您从Request进行适应,则可能会遇到麻烦。
HTH, 奥利格