- 给我有两个Maven的场景投射ABC-共同和ABC-服务
- ABC-服务依赖于abc-common项目。
ABC-共同从性能读取文件名为
myConfig.properties
如下:class PropertiesUtil { ..... Properties props = new Properties(); props.load(PropertiesUtil.class.getClassLoader().getResourceAsStream("myConfig.properties")); .... }
这工作得很好,当我通过创建无论是在项目的伪主方法测试。
但是,当我将这个项目部署到一个OSGI容器(JBOSS熔丝)时,它不起作用。主要原因是,在OSGI容器中,PropertiesUtil.class.getLoader()
是指对应于abc-service项目的捆绑包,我可以从该项目读取任何文件,但不能从abc-common项目读取。
所以现在的问题是,我怎样才能改变我的代码,这样,它可以在OSGi容器中读取ABC-共同项目的类路径属性。
注意 我部署我的项目作为karaf功能,同时列出ABC-服务和ABC-共同束作为依赖。
而且,我尝试了不同的变种一样
Thread.currentThread().getContextClassLoader().getResourceAsStream("myConfig.properties")
和
FrameworkUtil.getBundle(PropertiesUtil.class).getEntry("myConfig.properties.")
但没有人真正
你把属性文件放在Fuse的etc文件夹中吗? –
@SoucianceEqdamRashti。不,我只是在项目内添加属性文件,它存在于'.jar'文件中。 – niyasc
我试着在'/ etc'文件夹和结构配置文件中添加属性文件。两种方法都行不通。 – niyasc