Как прочитать файл в середине потока - PullRequest
0 голосов
/ 12 мая 2019

Я пытаюсь прочитать два файла одновременно в середине потока и объединить их в одну полезную нагрузку.Для чтения файлов в середине потока я использую компонент запрашивающего мула.При запуске потока (localhost: 8081 / запрашивающий / запрашивающий) я получаю сообщение об ошибке:

"Обнаружено исключение (я) для маршрута (ов): 0: конечная точка" src \ main \ resources \ input1 \ "employee.xml "искажен и не может быть проанализирован. Если это имя глобальной конечной точки, проверьте правильность имени, наличие конечной точки и правильную конфигурацию (например, атрибут« ref »). Примечаниечто имена на входящих и исходящих конечных точках нельзя использовать для отправки или получения сообщений; вместо этого используйте именованную глобальную конечную точку (org.mule.api.endpoint.MalformedEndpointException). 1: конечная точка "src \ main \ resources \ input2 \ employee2.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.Нужно ли скачивать другие банки или где я могу сделать исправление?

1 Ответ

1 голос
/ 12 мая 2019

resource должен быть 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" />
...