Spring SFTP 连接 - 从 SFTP 服务器获取文件

Spring SFTP connection - get file from SFTP server

我是 spring 的新手。我正在使用 spring 从远程服务器获取文件。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
xmlns:sftp="http://www.springframework.org/schema/integration/sftp"
xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/integration
    http://www.springframework.org/schema/integration/spring-integration.xsd
    http://www.springframework.org/schema/integration/sftp
    http://www.springframework.org/schema/integration/sftp/spring-integration-sftp-2.2.xsd">

<bean id="sftpSessionFactory"
    class="org.springframework.integration.sftp.session.DefaultSftpSessionFactory">
    <property name="host" value="xxxxxxxx" />
    <property name="user" value="wildfly" />
    <property name="password" value="w!ldfly" />
    <property name="port" value="22" />
</bean>

<int:channel id="sftpChannel" />

<sftp:inbound-channel-adapter id="triggerFtpInBound" auto-create-local-directory="true"
    local-directory="/tmp/test" filename-pattern="*" channel="sftpChannel"
    session-factory="sftpSessionFactory" remote-directory="/home/wildfly" delete-remote-files="true">
    <int:poller cron="1/10 * * * * *" max-messages-per-poll="1" />
</sftp:inbound-channel-adapter>

我正在使用以下代码。

ApplicationContext context = new ClassPathXmlApplicationContext("spring/config/spring-sftp.xml");

当我 运行 它时我没有收到任何错误,但我也没有复制任何文件。请让我知道我的代码中的错误。提前致谢。

光看静态配置很难调试。

第一步是打开 org.springframework.integration 的 DEBUG 日志记录,看看发生了什么。

如果您无法从日志中找出答案,post 他们;如果此处太大,请使用 github 要点、pastebin 或类似工具。

Spring 集成在底层使用了jsch;您可以按照 in the reference manual.

所述启用其日志记录

添加 "KnownHosts" 属性 解决了我的问题。我正在传输文件。

<property name="knownHosts" value = "C:\knownhosts"/>