【问题标题】:Spring SFTP connection - get file from SFTP serverSpring SFTP 连接 - 从 SFTP 服务器获取文件
【发布时间】:2016-03-10 02:43:24
【问题描述】:

我是春天的新手。我正在使用 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");

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

【问题讨论】:

    标签: java spring spring-integration sftp


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      只看静态配置很难调试。

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

      如果您无法从日志中找出答案,请将其发布;如果这里太大,请使用 github gist、pastebin 或类似的。

      Spring Integration 在后台使用 jsch;您可以按照in the reference manual 的说明启用其日志记录。

      【讨论】: