Mule ESB - 如何在Mule流中加载配置xml(自定义)文件

时间:2014-11-10 13:42:14

标签: mule mule-el

我正在尝试找到一种方法将自定义xml文件加载到骡子流中,并且可能将其作为变量获取。例如;

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<data-set xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <record>
       <LastName>Smith</LastName>
       <Sales>16753</Sales>
       <Country>UK</Country>
       <Quarter>Qtr 3</Quarter>
    </record>
    <record>
       <LastName>Johnson</LastName>
       <Sales>14808</Sales>
       <Country>USA</Country>
       <Quarter>Qtr 4</Quarter>
    </record>
</data-set>

请帮忙。

3 个答案:

答案 0 :(得分:2)

我按照@Ryan Hoegg的回答进行了一些修改,我的回答如下:

全球元素:

<spring:beans>
    <spring:bean id="LoadFile" name="Bean" class="java.lang.String">
        <spring:constructor-arg>
            <spring:bean id="Test" name="org.springframework.util.FileCopyUtils" class="org.springframework.util.FileCopyUtils" factory-method="copyToByteArray">
                <spring:constructor-arg type="java.io.InputStream" value="classpath:MSG_IDENTIFIER.xml"/>
            </spring:bean>
        </spring:constructor-arg>
    </spring:bean>

</spring:beans>

要检索:

<set-variable variableName="Contents" value="#[app.registry['LoadFile']]" doc:name="Variable"/>

P.S - 我把文件放在src / main / resources

答案 1 :(得分:1)

您可以按以下方式导入自定义配置文件: -

<spring:beans>
    <spring:import resource="domain-A-config.xml" />
    <spring:import resource="domain-B-config.xml" />
    <spring:import resource="admin-config.xml" />
  </spring:beans>

请参阅以下参考资料: - http://www.mulesoft.org/documentation/display/current/Modularizing+Your+Configuration+Files+for+Team+Development

答案 2 :(得分:1)

将文件内容转换为流变量的一种方法是使用this Stack Overflow question中所述的文件内容创建一个spring bean。然后,您可以使用MEL参考它:

<set-variable variableName="niftyData" value="#[app.registry['myBeanName']]" />