java - Spring 集成 : how to delete a file?

标签 java spring-integration

我正在开发一个简单的 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/

相关文章:

java - 无法在 spring-integration 4.1.x 中将 String 值转换为 ExpressionEvaluatingRequestHandlerAdvice 的表达式

java - Spring Integration Java DSL HTTP 在超时错误内未收到回复

java - Hibernate OneToMany和ManyToOne的混淆!空列表!

java - 递归函数中的字符串操作导致堆栈溢出

java - Spring 卡夫卡: different json payload on the same topic

spring-integration - requestMessage 中的负载正在使用出站网关请求中的响应对象进行修改

spring - Spring Integration 的带注释的配置用法

java - 在 Spring Boot 中设置 TTL 以使用一个 CacheManager 缓存不同的数据

java - 我在实现 Java 合并排序时遇到问题

java - 条件中 (obj != null) 和 !(obj == null) 之间有什么区别?