我有一个弹簧集成 FTP 适配器,如下所示
<int-ftp:inbound-channel-adapter id="ftpInbound"
channel="ftpChannel"
session-factory="ftpClientFactory"
filter="myCustomFilter"
auto-create-local-directory="true"
delete-remote-files="false"
remote-directory="/app/far/boo"
local-directory="file:output">
<int:poller fixed-rate="60000" max-messages-per-poll="-1"/>
</int-ftp:inbound-channel-adapter>
自定义过滤器是这样定义的,即我通过 FTP 将 2 个文件发送到我的本地目录。
现在我需要将所有下载的文件发送到下一个组件的频道。
我在下面尝试过:
<int:service-activator id="mySA" method="handleMessage" input-channel="ftpChannel" output-channel="nullChannel" ref="myFeeder">
<int:poller fixed-rate="1000" max-messages-per-poll="-1"></int:poller>
</int:service-activator>
<bean id="myFeeder" class="com.cs.imf2.feeder.polar.MyFeeder"/>
运行代码时,程序正确下载了 2 个文件,但是 myFeeder 的 handleMessage 仅被调用 1 次,并且 2 个下载文件中有 1 个作为参数传递。
- 为什么由于下载了 2 个文件,handleMessage 方法没有被调用 2 次?
- 为什么需要服务激活器?(没有它,我运行程序时出错)