在OSGi的蓝图阅读环境变量(Reading enviroment variable in osgi

2019-11-03 23:13发布

我建立部署在OSGi的一些骆驼的路线(JBoss的保险丝)

我在读我的属性文件中使用这样的:

  <ext:property-placeholder id="propiedades">
    <ext:location>file:/C:/TestBed/sucursal.propiedades</ext:location>
  </ext:property-placeholder>

但现在我想更改“文件:/ C:测试床/”,对于一些占位一些路径(如KARAF_ETC)。 我知道这个环境变量存在,因为当我在路由使用它,它的作品确定

    from(URI_IN)
    .log("{{env:KARAF_ETC}}") //Output is: C:\jboss-fuse-6.2.0.redhat-133\bin\..\etc
    .to(URI_OUT);

所以,我想要做的事,如:

  <ext:property-placeholder id="propiedades">
    <ext:location>file:{{env:KARAF_ETC}}/sucursal.propiedades</ext:location>
  </ext:property-placeholder>

但不起作用。

物业占位符是有点棘手,所以我用文件的尝试:/ {{ENV:KARAF_ETC}},文件:/ {{KARAF_ETC}},文件:$ {KARAF_ETC}和更多的组合,但没有一个工作(但他们中的一些投掷型动物错误)。

什么是正确的sintaxis得到的蓝图视觉环境变量?

Answer 1:

您是否尝试过这个?

<blueprint 
xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0" 
...> 

   <!-- Load system property --> 
   <ext:property-placeholder /> 

   <bean ...><property name="foobar" value="${foobar}"/></bean> 

</blueprint> 

我发现在这里: http://karaf.922171.n3.nabble.com/Get-environment-variable-td4025807.html



Answer 2:

您可以访问到karaf环境瓦尔使用karaf。[某件事],但在骆驼您可以访问使用KARAF_ [SOMETHING]

感谢克劳斯易卜生的指点在范围内的差异...

不过,这匹骆驼/ OSGi的东西真是奇怪......这是很难驯服...



Answer 3:

这对我的作品:

<propertyPlaceholder id="properties" location="file:${karaf.home}/etc/sucursal.properties"/>


文章来源: Reading enviroment variable in osgi blueprint