我定义了四个捆绑包:
bundle 1 : export package x version 1
bundle 2 : import package x ver [1,2] and export package y;y uses x
bundle 3 : export package x version 2
bundle 4 : import package y and also import package x version 2
使用apache felix(可分发二进制文件),我发现我应该在启动bundle 3之前手动强制不解析(或启动)bundle 1,然后再解析bundle 2(否则会出现使用约束问题,因为bundle 2将使用包x版本1并且在捆绑包 4 中将出现包 x 版本 1 和版本 2 --> 使用约束冲突)。
感谢这些帖子的作者:
http://njbartlett.name/2011/02/09/uses-constraints.html http://njbartlett.name/2011/02/09/uses-constraints.html
http://blog.springsource.com/2008/10/20/understanding-the-osgi-uses-directive/ http://blog.springsource.com/2008/10/20/understanding-the-osgi-uses-directive/
我不喜欢对我的捆绑包强加顺序,我需要将所有捆绑包复制到 /bundle 目录中,然后安装框架实例并启动它们。
我注意到 Apache felix 按字母顺序对要安装的捆绑包进行排序(因此将安装捆绑包 1,然后启动第一个捆绑包)。
我尝试使用 Apache karaf,将捆绑包复制到 /deploy 中,发现问题消失了,所以我的问题是:
Apache Karaf(或 felix 文件安装)是否应用一种策略来强制启动捆绑包的任何顺序以避免此类问题?
您应该尝试使用 Karaf 功能进行此类部署。您创建一个包含一项功能的功能文件,并将所有捆绑包添加到该功能。然后 Karaf 将加载所有包并解析并一次性启动它们。因此解析器应该能够正确解析您的所有包。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)