如何在流程中间读取文件

时间:2019-05-12 07:17:33

标签: mule mule-studio mule-component mule-el mule-esb

我正在尝试在流的中间同时读取两个文件,并将它们组合为一个有效负载。要读取流程中间的文件,我正在使用Mule Requester组件。触发流(localhost:8081 / requester / requester)时出现错误:

”发现了路线的异常:       0:端点“ src \ main \ resources \ input1 \ employees.xml”格式错误,无法解析。如果这是全局端点的名称,请检查名称是否正确,该端点是否存在以及您使用的配置是否正确(例如“ ref”属性)。请注意,入站和出站端点上的名称不能用于发送或接收消息。请改用命名的全局端点。 (org.mule.api.endpoint.MalformedEndpointException)。              1:端点“ src \ main \ resources \ input2 \ employees2.xml”格式错误,无法解析。如果这是全局端点的名称,请检查名称是否正确,该端点是否存在以及您使用的配置是否正确(例如“ ref”属性)。请注意,入站和出站端点上的名称不能用于发送或接收消息。请改用命名的全局端点。 (org.mule.api.endpoint.MalformedEndpointException)。”

 <?xml version="1.0" encoding="UTF-8"?>
 <mule xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:mulerequester="http://www.mulesoft.org/schema/mule/mulerequester" xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/mulerequester http://www.mulesoft.org/schema/mule/mulerequester/current/mule-mulerequester.xsd  http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd">
<file:connector name="file-connector-config" autoDelete="false" streaming="true" validateConnections="true" doc:name="File" />
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" basePath="/requester" doc:name="HTTP Listener Configuration" />
<flow name="muleRequester">
    <http:listener config-ref="HTTP_Listener_Configuration" path="/requester" doc:name="HTTP" />
    <logger message="Invoking Mule Requester" level="INFO" doc:name="Logger" />
    <scatter-gather doc:name="Scatter-Gather">
           <mulerequester:request resource="src\main\resources\input1\employees.xml" returnClass="java.lang.String" doc:name="Retrieve File1"/>

           <mulerequester:request resource="src\main\resources\input2\employees2.xml" returnClass="java.lang.String" doc:name="Retrieve File2"/>
      </scatter-gather><dw:transform-message doc:name="Transform Message"> 
        <dw:set-payload>< [CDATA[%dw 1.0 %output application/json
   ---
    {
payload1: payload[0],
payload2: payload[1]
    }]]></dw:set-payload>
    </dw:transform-message>
    <file:outbound-endpoint path="src/main/resources/output" responseTimeout="10000" doc:name="File"/>
    <logger message="Payload after file requester #[payload]" level="INFO" doc:name="Logger" />
</flow>

我不使用Maven。我需要下载任何其他jar或在哪里进行校正?

1 个答案:

答案 0 :(得分:1)

resource必须是一个Mule端点URL。 Mule请求者模块可以与许多传输一起使用,例如jms,file,ftp。因此,文件路径不足。这是读取文件的端点URL的示例:

<mulerequester:request resource="file://src/main/resources/in/ReadME.txt?connector=file-connector-config" doc:name="Retrieve File" returnClass="java.lang.String" />

您还可以像这样定义的那样指向全局端点:

<mulerequester:request config-ref="muleRequesterConfig" resource="myFileEndpoint" doc:name="Mule Requester" />
相关问题