使用文件适配器移动文件 你好 在消耗或失败后,我想将文件移到sucess文件夹中 有问题的文件夹。
周围我找到了不同的例子,但我无法弄清楚 使用文件适配器移动文件的解决方案
可能我在使用Spring Expression Language时遇到问题但是如果我使用
<int:poller default="true" fixed-delay="50"/>
<bean id="pseudoTransactionManager" class="org.springframework.integration.transaction.PseudoTransactionManager" />
<int:channel id="committedChannel"/>
<int:channel id="rolledBackChannel"/>
<int-file:inbound-channel-adapter channel="input" directory="target/input" filename-pattern="*">
<int:poller fixed-rate="500">
<int:transactional transaction-manager="pseudoTransactionManager" synchronization-factory="syncFactory" />
</int:poller>
</int-file:inbound-channel-adapter>
<int:transaction-synchronization-factory id="syncFactory">
<int:after-commit expression="payload.renameTo('/success/' + payload.name)" channel="committedChannel" />
<int:after-rollback expression="payload.renameTo('/failed/' + payload.name)" channel="rolledBackChannel" />
</int:transaction-synchronization-factory>
<int:service-activator input-channel="input" ref="sampleEndpoint" output-channel="output"/>
<int:channel id="output"/>
<int-file:outbound-channel-adapter channel="output" directory="target/output"/>
我检索了以下错误
Method call: Method renameTo(java.lang.String) cannot be found on java.io.File type correctly
这是正确的,因为该方法不存在
如果我使用payload.remove()我删除文件不移动。 如果我不使用删除文件,则不会从src中删除
我认为它是虚拟配置或简单使用SpEL但是...我无法找出线性解决方案
由于
马丁
答案 0 :(得分:1)
样本中有一个错误;它应该是......
<int:after-commit expression="payload.renameTo(new java.io.File('/success/' + payload.name))" channel="committedChannel" />
<int:after-rollback expression="payload.renameTo(new java.io.File('/failed/' + payload.name))" channel="rolledBackChannel" />