使用spring集成下载文件

时间:2014-07-14 13:33:39

标签: java xml ftp spring-integration

当我尝试从ftp服务器下载文件时,我遇到了一些问题。 当我尝试将下载的文件保存到空文件夹时,一切都很完美,但是当文件夹包含任何其他文件时,我的代码甚至连接到服务器。 这是我的上下文文件:

    <bean id="ftpClientFactory"
        class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
    <property name="host" value="${host}"/>
    <property name="username" value="${user}"/>
    <property name="password" value="${password}"/>
    <property name="clientMode" value="0"/>
    <property name="fileType" value="2"/>
    <property name="bufferSize" value="10000000"/>                  
</bean>
    <int:channel id="getFtpChannel">
    <int:queue/>
</int:channel>
<int-ftp:inbound-channel-adapter local-directory="ftp/" 
            channel="getFtpChannel" 
            session-factory="ftpClientFactory" 
            remote-directory="./"
            auto-create-local-directory="false"
            delete-remote-files="true"
            filename-pattern="*.exi">
    <int:poller fixed-rate="10000"/>
</int-ftp:inbound-channel-adapter>

我的java代码:

public void receiveTest() {
    ConfigurableApplicationContext context = 
            new FileSystemXmlApplicationContext("/src/citrus/resources/citrus-context.xml");
    PollableChannel channel = context.getBean("getFtpChannel", PollableChannel.class);
    channel.receive(); 
    context.close();
}

测试通过,看起来一切正常但不是。 你有什么想法吗? 谢谢你的进步。

1 个答案:

答案 0 :(得分:1)

这是测试用例吗?

如果已经有本地文件,我们不会从ftp获取,直到处理完这些文件。

我们在几个星期前遇到过类似的问题,当用户的测试用例在我们找到远程文件之前就退出了。

在测试结束时添加一个睡眠以验证。