Как передать byte [] на входной канал - file-to-bytes-transformer? - PullRequest
0 голосов
/ 29 августа 2018

мое приложение для интеграции с весенней загрузкой может работать на нескольких серверах (узлах), но все они должны читать общий каталог. Теперь я написал специальный шкафчик, который берет блокировку на файл, так что любой другой экземпляр будет не сможет обработать один и тот же файл. Вся конфигурация пружин была сделана в xml.

Приложение получает блокировку, но не может прочитать содержимое заблокированного файла.

java.io.IOException: The process cannot access the file because another process has locked a portion of the file

как указано в формах, мы можем получить доступ к содержимому заблокированного файла только через ByteBuffer.

поэтому попытался преобразовать файл в байты, используя файл-байтовый преобразователь, и передал его в качестве входных данных в исходящий шлюз. Но экземпляр не начинается.

Есть предложения?

<file:file-to-bytes-transformer input-channel="filesOut" output-channel="filesOutChain"/>
       <integration:chain id="filesOutChain" input-channel="filesOutChain"> 
        <file:outbound-gateway id="fileMover" 
            auto-create-directory="true"
            directory-expression="headers.TARGET_PATH"
            mode="REPLACE">
            <file:request-handler-advice-chain>
                <ref bean="retryAdvice" />
            </file:request-handler-advice-chain>
        </file:outbound-gateway>    
        <integration:gateway request-channel="filesChainChannel" error-channel="errorChannel"/>
    </integration:chain>
...