我正在尝试将Equinox嵌入到我们当前的服务器端应用程序中。管理以编程方式启动osgi框架。(通过Spring)系统包被隐式安装和启动(我认为)。但是我注意到没有导出系统包!
osgi> ss
Framework is launched.
id State Bundle
0 STARTING org.eclipse.osgi_3.7.1.R37x_v20110808-1106
osgi> packages 0
No exported packages
因此,我尝试启动的所有插件都失败了,因为它们都是import package org.osgi.framework。
有人碰到过这个吗?我错过了一些配置吗?
非常感谢! 攀登OSGI的陡峭学习曲线
我的代码:
private void bootstrapOsgiFmk() {
logger.info("Starting OSGI framework");
FrameworkFactory frameworkFactory = ServiceLoader.load(FrameworkFactory.class).iterator().next();
Map<String, String> config = new HashMap<String, String>();
config.put("osgi.console", "1234");
config.put(Constants.FRAMEWORK_STORAGE, "osgilogs/");
config.put(Constants.FRAMEWORK_STORAGE_CLEAN, "true");
config.put(Constants.FRAMEWORK_SYSTEMPACKAGES_EXTRA,"com.other.pkg");
Framework framework = frameworkFactory.newFramework(config);
try {
framework.start();
} catch (BundleException e) {
logger.error("Fail to start osgi framework.", e);
}
logger.info("OSGI started");
context.registerService(IQuoteService.class.getName(), new SimpleQuote(),null);
}