在用于 OSGi 的 JAX-RS 白板的参考实现中,啥调用 createWhiteboard(..)?

Posted

技术标签:

【中文标题】在用于 OSGi 的 JAX-RS 白板的参考实现中,啥调用 createWhiteboard(..)?【英文标题】:In the reference implementation of the JAX-RS Whiteboard for OSGi, what calls createWhiteboard(..)?在用于 OSGi 的 JAX-RS 白板的参考实现中,什么调用 createWhiteboard(..)? 【发布时间】:2021-01-09 09:51:09 【问题描述】:

OSGi 的 JAX-RS 白板的参考实现称为Aries JAX-RS Whiteboard。

我的问题是,Whiteboard.class 的工厂方法是如何以及何时被调用的?

public static Whiteboard createWhiteboard(
    Dictionary<String, ?> configuration) 

    return new Whiteboard(configuration);

例如,如果我将 jar 放入 Apache Felix 实例中?

我在整个项目中搜索createWhiteboard 符号,但没有找到任何调用它的东西。我知道是 OSGi 运行时执行此操作,但是如何,在哪里?

【问题讨论】:

【参考方案1】:

好的,所以我回答了我自己的问题。

Whiteboard.class 由实现标准化 OSGi 回调接口的单独“激活器”类调用,BundleActivator:CxfJaxrsBundleActivatorline 76。这类似于程序的entry point。然后,在line 105,调用runWhiteboard 方法,它抽象出对createWhiteboard 的调用,使用的方法可能比从line 198 开始要复杂得多。

堆栈中按自下而上顺序的主要调用将是:

createWhiteboard(configuration)
runWhiteboard(bundleContext, configuration)
start(BundleContext bundleContext) throws Exception

【讨论】:

以上是关于在用于 OSGi 的 JAX-RS 白板的参考实现中,啥调用 createWhiteboard(..)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JAX-RS 和 JAX-WS Web 服务实现之间进行选择?

将 jfxrt 移动到 lib/ext 以用于 OSGI

IOS技术分享| anyRTC 互动白板场景实现

OSGi规范的C#实现开源

如何使用felix实现osgi

java JAX-RS