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