1

我的 spring-boot-integration 应用程序可以在多个服务器(节点)上运行,但它们都应该读取一个公共目录。现在,我编写了一个自定义储物柜,它可以锁定文件,以便任何其他实例都无法处理相同的文件。所有 spring 配置都在 xml 中完成。

应用程序获取锁但无法读取锁定文件的内容。

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

正如表单中所建议的,我们只能通过 ByteBuffer 访问锁定的文件内容。

因此尝试使用 file-to-bytes-transformer 将文件转换为字节,并作为输入传递给出站网关。但是实例没有开始。

有什么建议吗?

<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>
4

0 回答 0