3

我经历了一些相当奇怪的事情,我想知道其他人是否也经历过同样的事情......

我目前正在使用 jboss fuse(以前是 fuse esb)开发一个项目,我们正在为我们的配置文件使用蓝图。我们使用属性占位符,在 src/main/resources/OSGI-INF/blueprint 下有以下文件: blueprint.xml properties.xml

在 blueprint.xml 我们有这样的东西:

<bean id="myBean" class="com.test.MyClass">
    <property name="prop1" value="${my.prop}" />
<∕bean>

然后在 properties.xml 我有这个:

<cm:property-placeholder persistent-id="my.properties" update-strategy="reload">
    <cm:default-properties>
        <cm:property name="my.prop" value="true" />
    </cm:default-properties>
</cm:property-placeholder>

我显然在 MyClass 中有一个用于 prop1(它是一个字符串)的设置器。

但我看到的是,当我部署它时,prop1 设置为“${my.prop}”而不是“true”,即变量永远不会被其定义的值替换!

但是现在如果我调用属性文件 aaa_properties.xml,它就可以工作了!!

这是蓝图容器中的错误吗?有没有其他人经历过同样的行为?

感谢您的反馈意见 :)

JM。

4

1 回答 1

0

我在 Fuse ESB 中找到了一些关于蓝图配置的信息

它指出:

如果您需要将蓝图配置文件放置在非标准位置(即 OSGI-INF/blueprint/*.xml 以外的位置),您可以在 Bundle-Blueprint 标头中指定以逗号分隔的替代位置列表在清单中

例如:

Bundle-Blueprint: lib/account.xml, security.bp, cnf/*.xml

我建议,你能不能试一试,并在这里指定你的 xml 文件,自然地以正确的顺序排列。

于 2014-02-10T10:52:43.663 回答