java – 使用osgi访问bundle内的公共属性文件

weixin_38070905 2019-09-12 10:31:04
我有一个带有多个包的osgi应用程序(在felix中).一个包中有一些常见的属性文件,其余的包只需要使用它们. 我们使用maven和spring osgi,属性文件在resouces中: <path to bundle>/src/main/resources/ common.properties engine.properties ... Maven通常在bundle jar中构建它们,因此它们应该在应用程序类路径中,但Spring无法访问它们,这会失败: <context:property-placeholder location="classpath:common.properties" /> (试过classpath *:和其他组合) 我读过this和this 它是否真的是osgi意识形态的全球问题,没有标准的方法让它运作?只有hacks和变通办法,如that或< osgix:cmProperties ...>? 它令人担忧,因为它使部署更加困难且容易出错:您不能像在普通应用程序中那样使用mvn deploy在jars中部署属性文件, – 您必须手动将它们复制到每个版本的生产框中.
...全文
57 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38073387 2019-09-12
  • 打赏
  • 举报
回复
使用OSGi,没有通用的应用程序类路径.尽管属性位于包含它们的包的类路径中,但它们不一定位于使用它们的包的类路径中. 它有点难看,但通常导出包含属性文件夹的’package’将使它们可访问.在这种情况下,它看起来像’.’,这非常难看,但您可以将它们放在’属性’目录(比如说)中,然后导出属性包.使用这些属性的bundle也需要导入属性包. 或者,使用包含bundle的类加载器来查找资源将会起作用,尽管我无法评论Spring配置的内容.

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧