Я хотел бы использовать SFTP Outbound Gateway для get
файла через SFTP, но я нахожу только примеры с помощью XML-конфигурации. Как это можно сделать с помощью конфигурации Java?Как настроить SFTP исходящий шлюз с помощью Java Config?
Update (Спасибо Артему Билана помощь)
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.
Является ли конфигурация Java для исходящего шлюза SFTP доступной в версии 4.3.1? В текущем GA (4.3.1) мне не удалось найти конструктор с параметрами, поддерживающими 'new SftpOutboundGateway (sftpSessionFactory()," ls ")' где 'sftpSessionFactory' имеет тип' SessionFactory ' –
James
Ну, у нас есть ошибка в этом документе. Согласен. Но это образец, какой-то шаблон. Вы должны выбрать подходящий конструктор для вашего прецедента. Я предполагаю, что это должно быть похоже на «SftpOutboundGateway» (ftpSessionFactory(), «get», «THE_PATH_TO_REMOTE_FILE»). –
Я получаю 'org.springframework.expression.spel.SpelParseException: EL1070E: (pos 0): проблема с анализом левого операнда при попытке создать компонент' MessageHandler'. У меня есть два компонента в моем классе '@ Configuration':' MessageHandler' и 'SessionFactory'. Я что-то упускаю? –
James