我遇到了很奇怪的事情,我想知道其他人是否也经历过同样的事情。
我目前正在使用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文件。