0

我正在使用 Mule 使用 html 文件获取输入并使用输入将值添加到 xml 我能够提取值我只需要进一步将其添加到 xml 中,我应该如何进一步进行,任何帮助将是感谢这是我的配置

<flow name="webappFlow1" doc:name="webappFlow1">
    <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="submitData" doc:name="HTTP"/>
    <http:body-to-parameter-map-transformer doc:name="Body to Parameter Map"/>
    <logger message="#[payload['VendorId']]" level="INFO" doc:name="Logger"/>
    <message-properties-transformer doc:name="Message Properties">
        <add-message-property key="vendorId" value="#[payload['VendorId']]"/>
    </message-properties-transformer>
    <file:inbound-endpoint path="src/test/resources" responseTimeout="10000" mimeType="text/xml" doc:name="File"/>

</flow>

下一步是将供应商 ID 添加到 xml 文件中,如果 xml 看起来像

<import>
  <field></field>
</import>

我想在字段中添加价值谢谢,Rahul

4

2 回答 2

1

当你第一次接触 mule 时,首先要了解的是消息源(即入站端点)只能放在流的开头。在它们之后,任何元素都应该是消息处理器。您可以在此处找到更多详细信息

也就是说,您可以使用自定义组件或使用fileutil 模块轻松实现您的用例

您的流程如下所示:

<flow name="webappFlow1" doc:name="webappFlow1">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="submitData" doc:name="HTTP"/>
<http:body-to-parameter-map-transformer doc:name="Body to Parameter Map"/>
<logger message="#[payload['VendorId']]" level="INFO" doc:name="Logger"/>
<message-properties-transformer doc:name="Message Properties">
    <add-message-property key="vendorId" value="#[payload['VendorId']]"/>
</message-properties-transformer>
<set-variable variableName="VendorId" value="#[payload['VendorId']]"/>
<file-utils:read-file fileName="import.xml" filePath="/my/path" />
<!-- The following trasformer should be a either some custom java code or a scripting transformer 
 that process the payload (the xmlFile) and by processing it i adds the flowVar['vendorId'] to it. -->
<trasformer ref="xmlTrasformer" />
</flow>

您可以在此处此处找到有关如何编写变压器的信息

于 2012-10-18T10:47:53.783 回答
0

如果在提交中摔跤工作室是一个问题,您始终可以使用表达式组件来读取文件。

我注意到您打算从以下位置读取src/test/resources:Studio 不会将此路径放在类路径中,因此假设您可以从其中读取文件src/main/app,以下组件将读取src/main/app/text.xml

<expression-component doc:name="Read Classpath Resource">
  payload = Thread.currentThread().contextClassLoader.getResourceAsStream('test.xml')
</expression-component>
于 2012-10-19T16:27:51.297 回答