我遇到了很奇怪的事情,我想知道其他人是否也经历过同样的事情。

我目前正在使用jboss保险丝(以前是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。

最佳答案

我发现了有关Blueprint Configuration in Fuse ESB的一些信息

它指出:


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


例如:

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


我建议,您可以尝试一下,自然地以正确的顺序在此处指定您的xml文件。

10-06 02:17