【发布时间】:2020-08-12 09:59:33
【问题描述】:
在 OSGi 组件/服务内部,我需要一个资源(页面、CF 等)的 JSON 表示,就像通过 Sling 模型选择器 (resource.model.json) 检索它一样。
不幸的是,在 OSGi 组件或服务中,没有可用的(吊索)请求对象。
有没有办法在不创建对 localhost 的 http 请求的情况下获取 json 表示(以及所有组件的模型导出器)?
【问题讨论】:
在 OSGi 组件/服务内部,我需要一个资源(页面、CF 等)的 JSON 表示,就像通过 Sling 模型选择器 (resource.model.json) 检索它一样。
不幸的是,在 OSGi 组件或服务中,没有可用的(吊索)请求对象。
有没有办法在不创建对 localhost 的 http 请求的情况下获取 json 表示(以及所有组件的模型导出器)?
【问题讨论】:
只要您有权访问该资源,这不是问题。
首先,您需要确保您的模型可以通过方法调用传递 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, 奥利格
【讨论】: