如何访问OSGi捆绑包中的文件?
|
我是OSGi的新手,并创建了一个OSGi捆绑包,该捆绑包在Apache Felix OSGi容器中运行。
捆绑软件中包含一个文件资源,我需要将其作为“ 0”传递给方法。要实例化文件对象,必须使用\“ file \”-方案中的URI或字符串形式的路径。如何以干净的方式检索其中的任何一个?
我尝试使用
context.getBundle().getResource(\"/myfile\")
(上下文为org.osgi.framework.BundleContext
类型),它返回URIbundle://6.0:0/myfile
。
但是此URI不能使用the4ѭ构造函数转换为File-instance,因为它具有\“ bundle \”-方案。
可以尝试构造一条到该位置的路径,从而知道工作目录并利用我的bundle的bundleId,但是我怀疑这是最佳实践。
有任何想法吗?
没有找到相关结果
已邀请:
3 个回复
款去芳尾脊
,并将其流式传输到文件中(例如,
可能会解决问题)。
膝垫富顷
会像OSGI类加载器理论一样,通过整个OSGI容器找到资源。
将从本地捆绑包中找到资源。并且返回网址可以转换为file,但可以转换为inputStream。 这是一个与此相同的问题:无法访问捆绑资源/文件(OSGi) 希望这对您有所帮助。
肺鬼耙扮群
这样,文件将从您的资源目录中加载。 FileName应该包含\“ src / main / resources \”之后的路径。 完整示例如下: