首先。谢谢你的关注,
我在我的spring集成项目中定义了ftp适配器,我将filename-pattern
设置为" *。在"使用ls命令在int-ftp:outbound-gateway中过滤.in
扩展名,我确信存在扩展名为.in
但返回空列表的文件,我的代码为:
<int-ftp:outbound-gateway id="gatewayLS"
session-factory="ftpSessionFactory"
request-channel="inbound"
command="ls"
filename-pattern="*.in"
command-options="-R"
expression="payload"
reply-channel="toSplitter"/>
更新
我定义了一个出站通道适配器来使用该通道:
<int:outbound-channel-adapter channel="toSplitter" method="handle">
<bean class="ir.ali.integration.handler.Dispatcher"/>
</int:outbound-channel-adapter>
我的豆是:
@Component
public class Dispatcher {
@Autowired
@Qualifier("mvChannel")
private MessageChannel messageChannel;
@Autowired
@Qualifier("toGet")
private MessageChannel messageChannel1;
public void handle(List<FileInfo> value) {
for (FileInfo fileInfo : value) {
Message<FileInfo> fileInfoMessage = MessageBuilder.withPayload(fileInfo).build();
if (FileUtil.isExists("./backup/".concat(fileInfo.getFilename()))) {
messageChannel.send(fileInfoMessage);
} else {
messageChannel1.send(fileInfoMessage);
}
}
}
}
但没有工作并返回空列表,我在for
中添加了一个波纹管来处理它:
if (!FilenameUtils.getExtension(fileInfo.getFilename()).equals("in"))
continue;
但工作不正确