【发布时间】:2016-06-16 21:37:59
【问题描述】:
我目前正在尝试使用 SI DSL SFTP 功能推送一些文件。
我不是很流利地使用这个 fwk,所以我想知道是否有更好的方法来完成我想要实现的目标。
有点像这样工作,除了文件被复制时,其余调用处于超时状态......
奖励:是否有一些关于 SI DSL 的好读物(书籍或在线)? (cafe si 样本和参考除外..)
编辑:
- 此 SI 流程是否遵循 SI 良好实践?
- 尽管文件已正确复制到 sftp 服务器,但为什么我的 rest 调用以超时结束?
Java 配置:
@Configuration
@EnableIntegration
@IntegrationComponentScan
public class IntegrationConfig {
//flow gateway
@MessagingGateway
public interface FlowGateway {
@Gateway(requestChannel = "SftpFlow.input")
Collection<String> flow(Collection<File> name);
}
//sftp flow bean
@Bean
public IntegrationFlow SftpFlow() {
return f -> f
.split()
.handle(Sftp.outboundAdapter(this.sftpSessionFactory(), FileExistsMode.REPLACE)
.useTemporaryFileName(false)
.remoteDirectory(sftpFolder));
}
//sftp session config
@Bean
public DefaultSftpSessionFactory sftpSessionFactory() {
System.out.println("Create session");
DefaultSftpSessionFactory factory = new DefaultSftpSessionFactory(true);
factory.setHost(sftpHost);
factory.setPort(Integer.valueOf(sftpPort));
factory.setUser(sftpUser);
factory.setPassword(sftpPwd);
factory.setAllowUnknownKeys(true);
return factory;
}
}
一个 RestController 类:
@Autowired
private FlowGateway flowGateway;
@RequestMapping("/testSftp")
public String testSftp() {
flowGateway.flow(Arrays.asList(file1, file2, file3);
}
【问题讨论】:
标签: java spring spring-integration sftp