我正在嘗試使用Spring批處理與我已經構建的Spring批處理程序集成,但此時我只是試圖獲取Spring的工作示例整合在Spring IO和Spring Example on GITHUB的幫助下。當本地目錄有任何內容時,SFTP入站通道適配器不復制文件
我已經自定義了示例程序,將遠程目錄中的所有文件一次性複製到本地,而其他一些細微的更改也是如此。該程序工作得很好,雖然它工作當且僅當本地目錄我複製到它沒有內容。
我試着重命名文件並運行程序,但仍然是同樣的問題。即使本地目錄具有隱藏的.DS_Store文件,程序也不會從遠程(SFTP)目錄複製內容,即文件。我想嘗試幾個可能性:即使有隱藏文件
- 複製文件尚未使用相同的名稱
請原諒我的無知,我似乎錯過了標籤設置某些屬性。
我的XML文件是相當如下了:
<?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:int-sftp="http://www.springframework.org/schema/integration/sftp"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:context="http://www.springframework.org/schema/context"
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/task http://www.springframework.org/schema/task/spring-task.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/integration/sftp http://www.springframework.org/schema/integration/sftp/spring-integration-sftp.xsd">
<context:property-placeholder location="classpath:user.properties"/>
<bean id="sftpSessionFactory" class="org.springframework.integration.sftp.session.DefaultSftpSessionFactory">
<property name="host" value="${host}"/>
<property name="port" value="22"/>
<property name="user" value="${user}"/>
<property name="password" value="${password}"/>
</bean>
<int-sftp:inbound-channel-adapter id="sftpInbondAdapter"
channel="receiveChannel"
session-factory="sftpSessionFactory"
local-directory="file:${local.directory}"
remote-directory="${remote.directory}"
auto-create-local-directory="true"
delete-remote-files="false"
filename-pattern="*.txt">
<int:poller max-messages-per-poll="-1" fixed-rate="1000" />
</int-sftp:inbound-channel-adapter>
<int:channel id="receiveChannel">
<int:queue/>
</int:channel>
</beans>
這裏的測試程序:
public class SftpInboundReceiveSampleTest {
@Test
public void runDemo(){
ApplicationContext context = new ClassPathXmlApplicationContext("/META-INF/spring/integration/SftpInboundReceiveSample-context.xml", this.getClass());
PollableChannel localFileChannel = context.getBean("receiveChannel", PollableChannel.class);
System.out.println("Received first file message: " + localFileChannel.receive());
}
}
更新: 操作系統:Mac OS X 10.9.3 Spring集成版:4.0.0.RELEASE 日誌:here
謝謝,我已經更新了所需信息的問題。 – oneworld
用一些建議更新了答案。 –
還要注意,在我們處理完所有現有本地文件(或者它們被過濾)之前,我們不會獲取任何遠程文件。 –