我有一个spring集成文件,使用入站适配器从本地目录中读取一些文件,然后将其存储在couchdb中。我想最后删除它。在我的属性文件中,我使用了delete.source.files = true。但是,这似乎不起作用。我读了其他stackflow问题,我可以使用ExpressionEvaluatingRequestHandlerAdvice。我将它用于我的inboundchanneladapter,但它不起作用。
<file:inbound-channel-adapter id="filesInput" expression= "headers['file_originalFile'].delete()?null:null"
directory="file:${incoming.path}/${tw.instance}" queue-size="8"
filename-pattern="*.json" prevent-duplicates="true" channel="filesIn" >
<int:poller id="poller" fixed-rate="${file.read.interval.millis}"
task-executor="pollerExecutor" />
</file:inbound-channel-adapter>
任何其他删除方式?表达式有什么问题。我是Spring集成的新手。提前谢谢。
答案 0 :(得分:0)
首先,expression
上没有<file:inbound-channel-adapter>
选项。另一种情况是该组件实际上没有任何选项可以删除文件。由于此组件完全基于java.io.File
对象,因此没有理由引入任何删除功能,因为简单File.delete()
在任何下游位置都足够了。
是的,ExpressionEvaluatingRequestHandlerAdvice
可用于此事,但作为<request-handler-advice-chain>
的{{1}}用于该couchdb操作。其<service-activator>
选项可用于执行onSuccessExpression
。