我正在使用karaf 3.0.1和我的包(https://github.com/johanlelan/camel-cxfrs-blueprint-example)。我想在运行时管理属性,但我看到config:update不会在/ etc上创建文件,为什么?
<cm:property-placeholder persistent-id="org.apache.camel.examples.cxfrs.blueprint"
update-strategy="reload">
<!-- list some properties for this test -->
<cm:default-properties>
<cm:property name="cxf.application.in"
value="cxfrs:bean:rest.endpoint?throwExceptionOnFailure=false&bindingStyle=SimpleConsumer&loggingFeatureEnabled=true"/>
<cm:property name="common.tenant.in" value="direct-vm:common.tenant.in"/>
<cm:property name="common.authentication.in" value="direct-vm:common.authentication.in"/>
<cm:property name="application.put.in" value="direct-vm:application.putById"/>
<cm:property name="application.post.in"
value="direct-vm:application.postApplications"/>
<cm:property name="log.trace.level" value="INFO"/>
</cm:default-properties>
</cm:property-placeholder>
在karaf中,我尝试修改端点网址:
karaf@root()> config:edit org.apache.camel.examples.cxfrs.blueprint
karaf@root()> config:property-set common.tenant.in direct-vm:test
karaf@root()> config:property-list
service.pid = org.apache.camel.examples.cxfrs.blueprint
common.tenant.in = direct-vm:test
felix.fileinstall.filename = file:/F:/travail/servers/karaf-lan/etc/org.apache.camel.examples.cxfrs.blueprint.cfg
karaf@root()> config:update
karaf@root()>
我确定我的软件包在config:update之后更新但是/ etc中没有文件...我认为它适用于karaf 2.3.5。
答案 0 :(得分:1)
ConfigurationAdmin服务会保留配置。如果您使用的是Karaf,它将使用Felix ConfigAdmin [1]中的实现。默认情况下,Karaf将ConfigAdmin配置为将文件存储在/ data下的本地捆绑存储区域中,但可以通过编辑felix.cm.dir
属性来更改。
此外,对.cfg文件的支持来自Felix FileInstall [2]。
[1] http://felix.apache.org/documentation/subprojects/apache-felix-config-admin.html [2] http://felix.apache.org/site/apache-felix-file-install.html
答案 1 :(得分:1)
在karaf 3.0.1中已知issue
您可以使用apache karaf 3.0.2修复此错误。