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

时间:2015-12-05 02:44:52

标签: java spring spring-integration sftp

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

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

2 个答案:

答案 0 :(得分:1)

仅仅查看静态配置很难调试。

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

如果你无法从日志中找出来,请将它们发布;如果这里太大了,请使用github gist,pastebin或类似内容。

Spring Integration使用了jsch;您可以按照in the reference manual所述启用其日志记录。

答案 1 :(得分:1)

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

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