当我尝试从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();
}
测试通过,看起来一切正常但不是。 你有什么想法吗? 谢谢你的进步。
答案 0 :(得分:1)
这是测试用例吗?
如果已经有本地文件,我们不会从ftp获取,直到处理完这些文件。
我们在几个星期前遇到过类似的问题,当用户的测试用例在我们找到远程文件之前就退出了。
在测试结束时添加一个睡眠以验证。