首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我想从数据库或其他源加载OSGI jar文件

我想从数据库或其他源加载OSGI jar文件
EN

Stack Overflow用户
提问于 2009-11-30 08:01:13
回答 4查看 939关注 0票数 2

我需要提供自定义的ClassLoader吗?考虑清楚,这似乎不是正确的方法,因为在类加载器中,一个人不知道所需的版本。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-01-28 06:37:51

鉴于加载机制本质上与URL一起工作,我建议尝试自定义URL处理程序。从逻辑上讲,在使用此处理程序加载任何包之前,您需要加载并激活它,否则我认为它应该可以工作。

请参阅R4 OSGi核心规范中的"URL处理程序服务规范“。

Glassfish is using this approach to install webapp bundles btw.

票数 3
EN

Stack Overflow用户

发布于 2009-12-05 18:50:12

一个简单的解决方案是创建您自己的引导包,它将从数据库(或其他位置)提供所有其他包。OSGi允许您从任意的InputStream安装包,因此将其插入到您想要的任何源(例如JDBC)中应该是相当容易的。

更多详情请参见BundleContext.installBundle()方法。

您不应该寻找“回调”,框架将通过“回调”通知您“何时需要加载所需的依赖项”,因为自动依赖项管理(ala Maven)不是核心OSGi功能的一部分(尽管可以通过使用OBR等服务来实现)。

票数 2
EN

Stack Overflow用户

发布于 2009-12-01 20:17:53

看看PAX URL项目:http://wiki.ops4j.org/display/paxurl/Documentation

这演示了加载OSGi包的关注点与它的存储方式的分离。从理论上讲,我没有看到使用数据库作为捆绑存储的任何主要障碍,尽管我也没有看到任何明显的优势。

对于捆绑包版本,您需要一些机制来确定要加载哪些捆绑包(和版本)。您可以将包与版本信息一起存储在数据库中,否则如何存储同一包的不同版本?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1817214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档