【问题标题】:Creating RESTful Webservice in CQ5,AEM在 CQ5、AEM 中创建 RESTful Web 服务
【发布时间】:2015-11-04 12:48:10
【问题描述】:

我想从 CQ5 托管宁静的网络服务。基本上,目的是根据修改日期、用户状态等一些参数,将 CQ5 中存在的所有用户暴露给外部系统。 我浏览了https://chanchal.wordpress.com/2015/01/11/using-jax-rs-and-jersey-to-write-restful-services-in-osgi-apache-felix-adobe-cq5aem/,因为我只能在网上找到这篇文章,但由于我是初学者,我无法实现它。在 CQ5 中实现此类 RESTful Web 服务需要指导

【问题讨论】:

    标签: rest aem sling


    【解决方案1】:

    CQ5 基于本质上是 RESTful 的 Apache Sling,因此您通常不需要额外的库。在您的情况下(除非用户信息已经作为 Sling 资源可用,否则我不记得是否是这种情况)实现 Sling ResourceProvider 足以提供这些资源的可浏览 RESTful 表示。有关更多信息,请参阅Sling docs,他们指向一个简单的PlanetResourceProvider 作为最小示例。

    【讨论】:

    • 这是一个有趣的概念。我一直在 AEM 中使用 Web 服务,但没有从 AEM 中暴露出来。
    • @Bertrand Delacretaz 感谢您的回复。实际上,我需要实现的是任何调用都应该看起来和功能都像 rest 调用,即 URL 也应该支持变量。例如10.143.1.90:4503/fetch/users/date/11-Sep-2015 所以这里的日期 11-sep-2015 是 web 服务的一个参数,它将根据这个日期过滤用户。还要注意的是外部应用程序将使用我所说的这个网络服务。
    • 您可以使用 ResourceProvider 实现 /fetch/some/parameters 之类的 URL,只需将其挂载到 /fetch 并将资源路径映射到适当的数据。
    • @BertrandDelacretaz 我也会尝试你的方式,但我有一个问题,比如这会像精确的 REST web 服务吗?因为它将用于一些需要 REST web 服务并从中生成 WADL 文件的 SAP 工具自动 REST URL。早些时候,我尝试通过提供后缀(参数)通过 servlet 实现相同的功能,认为该工具将无法区分它是 REST 还是 servlet,但令人惊讶的是,WADL 生成在工具中失败了,我认为这是因为那是 servlet 和不是 REST 网络服务。如果您能提出一些建议,将非常感激。
    • WADL?嗯......如果你有一个单一的 RESTful 入口点,你可能可以手动生成任何需要的定义。如果它无论如何都是一个入口点,那么为此添加多个额外的库对我来说听起来有点矫枉过正。
    【解决方案2】:

    无法让 REST Web 服务与 AEM/CQ5 一起使用。即使在为 CQ5 安装了 JAXB 的软件包之后。似乎 sling 在转到 JAXB 注释处理程序之前会覆盖解析。由于没有时间,不得不实施一种替代方法,其中 CQ5 将及时将 json 数据作为 json 文件写入共享位置,第三方应用程序将从那里获取文件。 但是,这会影响性能,因为要编写调度程序,而且这不是推荐的方法,但它仍然可以在我的场景中工作。 谢谢大家帮助我。

    【讨论】:

      猜你喜欢
      • 2011-02-12
      • 1970-01-01
      • 2016-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      相关资源
      最近更新 更多