【问题标题】:How to access OSGi bundle information remotely如何远程访问 OSGi 包信息
【发布时间】:2017-11-25 11:14:28
【问题描述】:

我需要访问有关远程 AEM 应用程序 (Apache Felix) 的所有捆绑包和服务的信息。 捆绑包所需的信息:

  1. 导出的包和版本
  2. 导入的包和版本
  3. 捆绑状态

服务所需资料:

  1. 实现的界面
  2. 排名
  3. Servlet 的路径、资源类型、选择器

我们怎么可能通过 Java 程序收集上述所有信息?

我无法在 OSGi 容器上部署任何自定义远程服务。必须收集所有细节,只能通过外部执行的远程 Java 程序。

【问题讨论】:

  • 您使用哪个 OSGi 容器?此外,检查 OSGi 容器的 API 如何获取已安装包的列表。编辑您的问题以包含您实际想要做什么的描述,因为这听起来像 X-Y problem
  • 您想查看远程 OSGi 框架的内部,但不允许在其中安装任何捆绑软件?我认为这不可能,抱歉。

标签: java osgi remote-access


【解决方案1】:

OSGi 纲要的第 137 章定义了 OSGi REST 管理服务。这提供了您要求在简单 REST 模型中使用标准 DTO 的所有信息。

URI framework/bundles 将列出可以使用framework/bundle/{bundleid} 进行自省的捆绑包,而framework/services 将列出可以使用framework/service/{serviceid} 进行自省的服务

根据要求,此解决方案不使用远程服务,但正如其中一个 cmets 中所述,如果不安装某些东西,就无法自省远程 OSGi 框架。在这种情况下,您必须将 REST 管理服务实现添加到远程框架。

【讨论】:

    猜你喜欢
    • 2012-07-22
    • 2011-09-22
    • 2015-05-04
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    相关资源
    最近更新 更多