我正在运行Karaf,并有一个蓝图xml文件,该文件可以从Karaf等目录(...apache-karaf/etc/SomeProperties.properties)中访问一个文件,以便在一个包中使用:
<ext:property-placeholder placeholder-prefix="$[" placeholder-suffix="]">
<ext:location>file:etc/SomeProperties.properties</ext:location>
</ext:property-placeholder>
<bean id="SomeBean" class="impl.com.package.SomeBean"
init-method="init" destroy-method="destroy">
<property name="beanvariable1" value="$[property1key]"/>
<property name="beanvariable2" value="$[property2key]"/>
</bean>但是,我还希望不仅访问该特定文件中的所有属性,而且访问以.cfg结尾的同一个karaf/etc目录中的所有文件(而不单独命名任何文件)。这能办到吗?
具体来说,是否有一种方法来指定目录位置而不是文件位置?另外,对目录中的文件类型进行筛选?
或者,是否有任何方法(使用蓝图或其他方式)从运行在Karaf中的包中访问apache/etc dir中的所有文件(不只是包含在其中的特定属性)?
发布于 2017-07-19 15:00:40
直接获得配置管理服务的句柄,然后可以滚动所有存储的配置集(在OSGi中称为“pid”,用于永久ID )
您有几个选项,您可以使用蓝图内建bean引用来引用您的包(它可以遍历到Config Admin服务)。有关使用蓝图的更完整引用之一,请参见此链接:IBM的蓝图参考
或者您可以设置一个引用并直接连接到Config Admin服务。
<reference id="configAdmin" interface="org.osgi.service.cm.ConfigurationAdmin">然后将'configAdmin‘豆子连接到你的豆子中。
https://stackoverflow.com/questions/45171412
复制相似问题