我经历了一些相当奇怪的事情,我想知道其他人是否经历过同样的事情......
我目前正在使用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的setter(这是一个String)。
但我看到的是,当我部署它时,prop1设置为“$ {my.prop}”而不是“true”,即变量永远不会被其定义的值替换!
但是现在如果我调用属性文件aaa_properties.xml,它就可以运行!!
这是蓝图容器中的错误吗? 是否有其他人遇到过相同的行为?
感谢您的反馈:)
JM。
答案 0 :(得分:0)
我找到了一些有关Blueprint Configuration in Fuse ESB
的信息它声明:
如果您需要将蓝图配置文件放在非标准位置(即OSGI-INF / blueprint / * .xml以外的其他位置),您可以在Bundle中指定以逗号分隔的备用位置列表清单中的-Blueprint标题
例如:
Bundle-Blueprint: lib/account.xml, security.bp, cnf/*.xml
我建议,您可以试一试,并在此处指定您的xml文件,自然地按正确的顺序排列。