2
我想通過SFTP使用SFTP出站網關到get
一個文件,但我只找到使用XML配置的示例。這怎麼用Java配置來完成?如何使用Java Config配置SFTP出站網關?
更新(感謝阿爾喬姆比蘭的幫助)
MyConfiguration類:
@Configuration
public class MyConfiguration {
@Bean
public SessionFactory<LsEntry> sftpSessionFactory() {
DefaultSftpSessionFactory sftpSessionFactory = new DefaultSftpSessionFactory();
sftpSessionFactory.setHost("myhost");
sftpSessionFactory.setPort(22);
sftpSessionFactory.setUser("uname");
sftpSessionFactory.setPassword("pass");
sftpSessionFactory.setAllowUnknownKeys(true);
return new CachingSessionFactory<LsEntry>(sftpSessionFactory);
}
@Bean
@ServiceActivator(inputChannel = "sftpChannel")
public MessageHandler handler() {
SftpOutboundGateway sftpOutboundGateway = new SftpOutboundGateway(sftpSessionFactory(), "get", "#getPayload() == '/home/samadmin/test.endf'");
sftpOutboundGateway.setLocalDirectory(new File("C:/test/gateway/"));
return sftpOutboundGateway;
}
}
我的應用程序類:
@SpringBootApplication
@EnableIntegration
public class TestIntegrationApplication {
public static void main(String[] args) {
SpringApplication.run(TestIntegrationApplication.class, args);
}
}
配置現在成功了,但沒有發生SFTP。需要弄清楚如何請求SFTP。
版本4.3.1中是否提供適用於SFTP出站網關的Java配置?在目前的GA(4.3.1)中,我無法找到一個構造函數,它的參數支持'new SftpOutboundGateway(sftpSessionFactory(),「ls」)''sftpSessionFactory'類型爲'SessionFactory' –
James
那麼,我們有一個bug在那個文件裏。同意。但是,這是一個樣本,無論如何都是一些模板。你應該爲你的用例選擇一個合適的構造函數。我想這應該像'SftpOutboundGateway(ftpSessionFactory(),「get」,「'THE_PATH_TO_REMOTE_FILE'」)''。 –
我收到'org.springframework.expression.spel.SpelParseException:EL1070E:(pos 0):嘗試創建MessageHandler bean時解析左操作數的問題。我在'@ Configuration'類中有兩個bean:'MessageHandler'和'SessionFactory'。我錯過了什麼嗎? –
James