我的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>