【问题标题】:AEM - How to retrieve model-json in OSGi componentAEM - 如何在 OSGi 组件中检索 model-json
【发布时间】:2020-08-12 09:59:33
【问题描述】:

在 OSGi 组件/服务内部,我需要一个资源(页面、CF 等)的 JSON 表示,就像通过 Sling 模型选择器 (resource.model.json) 检索它一样。

不幸的是,在 OSGi 组件或服务中,没有可用的(吊索)请求对象。

有没有办法在不创建对 localhost 的 http 请求的情况下获取 json 表示(以及所有组件的模型导出器)?

【问题讨论】:

    标签: aem aem-6


    【解决方案1】:

    只要您有权访问该资源,这不是问题。

    首先,您需要确保您的模型可以通过方法调用传递 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, 奥利格

    【讨论】:

    • 方法很好,但最后一句话却成了陷阱。无论如何,我最终使用 RequestResponseFactory 来创建内部请求。
    猜你喜欢
    • 2018-03-30
    • 2017-06-13
    • 1970-01-01
    • 2016-01-22
    • 2019-09-02
    • 2018-12-07
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    相关资源
    最近更新 更多