如何在运行时清理OSGi捆绑包缓存

ppatierno

我有以下示例方案...(请注意,我可以使用服务来实现方案,但是我正在尝试一些事情)

一个具有Activator类的OSGi捆绑包(将其命名为“客户端”),另一个OSGi捆绑包是一个简单的库(命名为“服务器”),其中公开了一个名为callMe()的方法。在“客户端”的start()方法中,有一个对“服务器”的callMe()方法的调用。当然,“服务器”捆绑包将其中包含具有callMe()方法的类的包公开,而“客户端”捆绑包将其作为导入的包。在没有安装两个捆绑软件的情况下启动OSGi框架,我首先安装了“客户端”捆绑软件,当我尝试执行start()方法时,显示以下错误:

org.osgi.framework.BundleException:包org.example.helloworld中未解决的约束[4]:无法解决4.0:缺少要求[4.0] osgi.wiring.package; (osgi.wiring.package = org.example.helloworldlib)

没错,因为既未安装也未解决“服务器”捆绑包。现在,我安装了“服务器”捆绑包,并在“客户端”上调用了start():这一次一切正常,因为安装了“服务器”捆绑包,因此可以解析,激活“客户端”,并且可以在其上调用callMe()方法“服务器”。

之后,我卸载“服务器”捆绑包,离开“客户端”。现在奇怪的是...停止“客户端”并重新启动()...“客户端”有效!即使我以前卸载了它,也可以调用“ server”的callMe()方法!我知道OSGi框架具有捆绑包缓存,因此似乎“服务器”捆绑包在缓存中,但是为什么没有在捆绑包列表中显示呢?

是否可以在运行时清除缓存?

保罗

克里斯汀·施耐德(Christian Schneider)

当捆绑包进入已解决状态时,OSGi会建立与所需软件包的连接。然后,将保留这些布线,直到调用刷新为止。

因此,在卸载服务器捆绑包时,客户端保持工作状态是完全正常的。

当您调用刷新时,将再次执行解析步骤。因此,此时客户端无法解决。据我所知,接线没有缓存在磁盘上。

因此,如果您卸载服务器并重新启动框架客户端,也应该无法解决。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们如何在运行时更新OSGI中的任何捆绑软件

来自分类Dev

我们如何在运行时更新OSGI中的任何捆绑软件

来自分类Dev

OSGI:如何在运行时在felix上导出系统软件包

来自分类Dev

如果OSGi捆绑包使用类加载器,如何检测它的运行时库?

来自分类Dev

JBoss Fuse,Apache Karaf:如何获取有关某些osgi捆绑包在运行时启动的信息?

来自分类Dev

OMP:如何在运行时找到合适的缓存大小

来自分类Dev

OSGi容器什么时候开始使用在运行时添加的更新版本捆绑包的导出?

来自分类Dev

如何声明对现有名称空间的引用,该名称空间可在运行时从javacript捆绑包获得

来自分类Dev

由Tycho surefire运行时OSGi捆绑包未激活

来自分类Dev

如何在运行时打印函数,变量名,闭包等的文本?

来自分类Dev

如何在运行时从程序包中以编程方式配置karaf / etc文件?

来自分类Dev

Grails-在运行时覆盖消息捆绑包属性

来自分类Dev

如何在运行时运行php扩展

来自分类Dev

如何在运行时找出类的来源?

来自分类Dev

如何在运行时动态关注输入元素

来自分类Dev

如何在运行时在Typescript中添加属性

来自分类Dev

如何在运行时更改NLog规则目标?

来自分类Dev

如何在运行时检查类型?

来自分类Dev

如何在运行时从C ++创建QQmlComponent?

来自分类Dev

如何在运行时在UI元素周围移动?

来自分类Dev

如何在运行时给数组索引命名的键

来自分类Dev

如何在运行时读取tekst文件

来自分类Dev

如何在运行时递归创建ActionBar?

来自分类Dev

如何在运行时更改静态方法的行为?

来自分类Dev

如何在运行时“禁用” require.js?

来自分类Dev

如何在运行时检查授予权限?

来自分类Dev

如何在运行时禁用cout输出?

来自分类Dev

如何在运行时使用隐式?

来自分类Dev

如何在运行时正确压缩UIImage

Related 相关文章

  1. 1

    我们如何在运行时更新OSGI中的任何捆绑软件

  2. 2

    我们如何在运行时更新OSGI中的任何捆绑软件

  3. 3

    OSGI:如何在运行时在felix上导出系统软件包

  4. 4

    如果OSGi捆绑包使用类加载器,如何检测它的运行时库?

  5. 5

    JBoss Fuse,Apache Karaf:如何获取有关某些osgi捆绑包在运行时启动的信息?

  6. 6

    OMP:如何在运行时找到合适的缓存大小

  7. 7

    OSGi容器什么时候开始使用在运行时添加的更新版本捆绑包的导出?

  8. 8

    如何声明对现有名称空间的引用,该名称空间可在运行时从javacript捆绑包获得

  9. 9

    由Tycho surefire运行时OSGi捆绑包未激活

  10. 10

    如何在运行时打印函数,变量名,闭包等的文本?

  11. 11

    如何在运行时从程序包中以编程方式配置karaf / etc文件?

  12. 12

    Grails-在运行时覆盖消息捆绑包属性

  13. 13

    如何在运行时运行php扩展

  14. 14

    如何在运行时找出类的来源?

  15. 15

    如何在运行时动态关注输入元素

  16. 16

    如何在运行时在Typescript中添加属性

  17. 17

    如何在运行时更改NLog规则目标?

  18. 18

    如何在运行时检查类型?

  19. 19

    如何在运行时从C ++创建QQmlComponent?

  20. 20

    如何在运行时在UI元素周围移动?

  21. 21

    如何在运行时给数组索引命名的键

  22. 22

    如何在运行时读取tekst文件

  23. 23

    如何在运行时递归创建ActionBar?

  24. 24

    如何在运行时更改静态方法的行为?

  25. 25

    如何在运行时“禁用” require.js?

  26. 26

    如何在运行时检查授予权限?

  27. 27

    如何在运行时禁用cout输出?

  28. 28

    如何在运行时使用隐式?

  29. 29

    如何在运行时正确压缩UIImage

热门标签

归档