我正在开发一个简单的 spring 集成项目,该项目选择一些文件(使用 file:inbound-channel-adapter)并根据这些文件将一些数据导入数据库。
最后它希望删除这些文件,因为我不再需要它们,到目前为止我还没有弄清楚如何在不编码的情况下做到这一点。
file:outbound-channel-adapter 是不行的,因为它移动文件而不是删除它们。
我正在尝试解决这个问题
<int:outbound-channel-adapter expression="headers['file_originalFile'].delete()" ...
但是我得到了
Failed to convert value of type 'java.lang.String' to required type 'java.lang.Void';
您有什么想法如何在不编码的情况下解决这个问题吗?
最佳答案
File.delete()
返回一个 boolean 值,并且根据契约(Contract),出站 channel 适配器必须返回 void
(无输出)。
您可以使用 <service-activator/>
与 output-channel="nullChannel"
放弃结果。
或者,您可以使用表达式评估最终消费者的建议,如 retry-and-more sample 中所示。 .
关于java - Spring 集成 : how to delete a file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32952576/