I worked on spring integration <int-ftp:outbound-gateway> , I was able to download files from a remote server using ftp-outbound-gateway , but there is one problem that I could not solve yet. If the remote directory contains files, the system is working and will be completed without any problems, but if there was no file system, freeze without executing this point. I want to continue working with the system. the remote folder contains files or not,
Here is my configuration for ftp download
<?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:context="http://www.springframework.org/schema/context" xmlns:int="http://www.springframework.org/schema/integration" xmlns:p="http://www.springframework.org/schema/p" xmlns:int-ftp="http://www.springframework.org/schema/integration/ftp" xsi:schemaLocation="http://www.springframework.org/schema/integration/ftp http://www.springframework.org/schema/integration/ftp/spring-integration-ftp.xsd http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:property-placeholder location="classpath:host.properties"/> <int:gateway id="gw" service-interface="com.util.ToFtpFlowGateway" default-request-channel="inbound"/> <bean id="downloadProcessBean" class="com.util.FTPDownloadInterceptor"> <property name="fileType" value="txt"/> <property name="sourceType" value="ftp"/> <property name="destinationName" value="destinationName"/> <property name="destinationQueName" value="destinationQueName"/> <property name="sourceAddressDetails" value="sourceAddressDetails"/> <property name="sourceName" value="sourceName"/> </bean> <bean id="ftpSessionFactory" class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory"> <property name="host" value="${local.host}"/> <property name="port" value="${local.availableServerPort}"/> <property name="username" value="${local.userid}"/> <property name="password" value="${local.user.password}"/> </bean> <int-ftp:outbound-gateway id="gatewayLS" cache-sessions="false" session-factory="ftpSessionFactory" request-channel="inbound" command="ls" command-options="" expression="payload" reply-channel="toSplitter" reply-timeout="10" /> <int:channel id="toSplitter"> <int:interceptors> <int:wire-tap channel="logger"/> </int:interceptors> </int:channel> <int:logging-channel-adapter id="logger" log-full-message="true" /> <int:splitter id="splitter" input-channel="toSplitter" output-channel="toGet"/> <int-ftp:outbound-gateway id="gatewayGET" cache-sessions="false" local-directory="/home/udeshika/project/req/local/download" session-factory="ftpSessionFactory" request-channel="toGet" reply-channel="toRemoveChannel" command="get" command-options="-P" expression="payload.remoteDirectory + '/' + payload.filename" reply-timeout="10"/> <int-ftp:outbound-gateway id="gatewayRM" session-factory="ftpSessionFactory" cache-sessions="false" expression="payload.remoteDirectory + '/'+ payload.filename" request-channel="toRemoveChannel" command="rm" reply-channel="aggregateResultsChannel" auto-create-local-directory="true" reply-timeout="10" /> <int:channel id="toRemoveChannel"> <int:interceptors> <int:wire-tap channel="logger2"/> </int:interceptors> </int:channel> <bean class="org.springframework.integration.file.FileReadingMessageSource" p:directory="${download.directory}"/> <int:logging-channel-adapter id="logger2" log-full-message="true" /> <int-ftp:outbound-gateway id="gatewayRM" session-factory="ftpSessionFactory" cache-sessions="false" expression="headers['file_remoteDirectory'] + '/' + headers['file_remoteFile']" request-channel="toRemoveChannel" command="rm" reply-channel="aggregateResultsChannel"/> <int:aggregator input-channel="aggregateResultsChannel"/> </beans>
Can someone help me clear this
Thanks in advance Udeshika,
source share