WSO2 ESB FileConnector MergeFiles не дает ожидаемых результатов - PullRequest
0 голосов
/ 23 марта 2020

Я работаю с WSO2 ESB 6.5.0 и использую версию fileconnector-2.0.21 для файловых операций. Создаемая мной прокси-служба предназначена для чтения файлов по определенному исходному пути и объединения содержимого в файл по пути назначения.

Содержание артефакта прокси-службы ниже

<?xml version="1.0" encoding="UTF-8"?>
<proxy name="FileMergeProxy" startOnLoad="true" transports="http https" xmlns="http://ws.apache.org/ns/synapse">
    <target>
        <inSequence>
            <log description="Combine files" level="custom" separator="| ">
                <property name="statusMessage" value="Processing complete"/>
                <property name="fileCreation" value="Initiating file merge"/>
                <property expression="$ctx:mergeDirPath" name="sourceDir"/>
                <property expression="$ctx:finalDirPath" name="destDir"/>
                <property expression="$ctx:outputFilePattern" name="pattern"/>
                <property expression="fn:concat('file:///', $ctx:mergeDirPath)" name="sourceDir1" scope="default" type="STRING"/>
                property expression="fn:concat('file:///', $ctx:finalDirPath)" name="destDir1" scope="default" type="STRING"/>
                </log>
                <fileconnector.mergeFiles>
                    <source>{$ctx:mergeDirPath}</source>
                    <destination>{$ctx:finalDirPath}</destination>
                    <filePattern>{$ctx:outputFilePattern}</filePattern>
                </fileconnector.mergeFiles>
                <log description="Processing complete" level="custom" separator="| ">
                    <property name="doneMessage" value="File merge processing complete"/>
                </log>
        </inSequence>
        <outSequence/>
        <faultSequence>
            <log level="custom">
                <property name="text" value="An unexpected error occured"/>
                <property expression="get-property('ERROR_MESSAGE')" name="message"/>
                <property expression="get-property('ERROR_DETAIL')" name="errordetail"/>
            </log>
            <send description="Send Error Information"/>
        </faultSequence>
    </target>
</proxy>

Я вызываю службу со следующими параметрами в виде JSON файла

{
  "mergeDirPath": "C://temp//merge//",
  "finalDirPath": "C://temp//final//finalcontent.txt",
  "outputFilePattern": "\\*txt"
}

Когда я вызываю службу после развертывания артефактов в ядре ESB, она создает пустой файл в путь назначения без слияния содержимого файлов в исходном каталоге. Это выдержка из журналов WSO2.

[2020-03-23 12:48:36,683] []  INFO - LogMediator To: /services/FileMergeProxy,MessageID: urn:uuid:b569ec6a-d4fe-4763-a0ca-fb2eb868a31e correlation_id : a1c542bb-7fac-4e0b-9582-8cb1a605f618,Direction: request,Payload: { "mergeDirPath": "C://temp//merge//",  "finalDirPath": "C://temp//final//finalcontent.txt",  "outputFilePattern": "\\*txt" }
[2020-03-23 12:49:00,422] []  INFO - LogMediator statusMessage = Combine files| fileCreation = Initiating file merge| sourceDir = C://temp//merge//| destDir = C://temp//final//finalcontent.txt| pattern = \*txt| sourceDir1 = file:///C://temp//merge//| destDir1 = file:///C://temp//final//finalcontent.txt
[2020-03-23 12:49:02,943] []  INFO - LogMediator doneMessage = File merge processing complete

Если я что-то здесь не упустил, разве mergeFiles не делает именно это - объединяет содержимое файлов в указанном каталоге? Любые полезные предложения или указатели приветствуются. Заранее спасибо.

1 Ответ

1 голос
/ 03 апреля 2020

В соответствии с прокси, которым вы поделились, вы определили свойства внутри посредника журнала. Определите свойства вне посредника журнала.

...