2015-07-29 5 views
2

У меня есть несколько мест, откуда я должен загрузить эти файлы, а затем удалит эти файлы или заархивирует эти загруженные файлы на удаленном сервере. Следующее - это то, что я хочу сделать, но проблема в том, что я мало знаю, я не знаю, возможно это или нет.Есть ли в любом случае наличие нескольких входящих SFTP-каналов в одном файле конфигурации?

ApplicationContext:

<bean id="defaultSftpSessionFactory" 
      class="org.springframework.integration.sftp.session.DefaultSftpSessionFactory"> 
     <property name="host" value="${sftp.host}"/> 
     <property name="user" value="${sftp.username}"/> 

     <property name="port" value="${sftp.serverPort}"/> 
     <property name="privateKey" value="classpath:IBS_KEYS/id_rsa.txt"/> 

     <property name="privateKeyPassphrase" value="${sftp.passphrase}"/> 

    </bean> 

    <bean id="sftpSessionFactory" class="org.springframework.integration.file.remote.session.CachingSessionFactory"> 
     <constructor-arg ref="defaultSftpSessionFactory" /> 

    </bean> 

<int-sftp:inbound-channel-adapter id="sftpAdapterAutoCreate" 
      session-factory="sftpSessionFactory" 
      channel="requestSFTPNODEVChannel" 
      filename-pattern="*.*" 
      remote-directory="/home/oracle/" 
      preserve-timestamp="true" 
      local-directory="C:/temp/" 
      auto-create-local-directory="true" 
      temporary-file-suffix=".writing" 
      delete-remote-files="true"> 
    <int:poller fixed-rate="1000"/> 
</int-sftp:inbound-channel-adapter> 


<int-sftp:inbound-channel-adapter id="sftpAdapterAutoCreate" 
      session-factory="sftpSessionFactory" 
      channel="requestSFTPDKDEVChannel" 
      filename-pattern="*.*" 
      remote-directory="/home/oracle/Outgoing/" 
      preserve-timestamp="true" 
      local-directory="C:/temp1/" 
      auto-create-local-directory="true" 
      temporary-file-suffix=".writing" 
      delete-remote-files="true"> 
    <int:poller fixed-rate="1000"/> 
</int-sftp:inbound-channel-adapter> 

    <int:channel id="requestSFTPNODEVChannel"> 
     <int:queue/> 
    </int:channel> 

<int:channel id="requestSFTPDKDEVChannel"> 
     <int:queue/> 
    </int:channel> 

ответ

1

Да, вы можете иметь столько адаптеров, как вы хотите, но они нуждаются в уникальных id с.

+0

Тогда как я могу получить доступ к конкретному адаптеру входящего канала из моего java-кода? – user3548196

+1

«Доступ» это в каком отношении? Чтобы начать/остановить, см. [Этот ответ] (http://stackoverflow.com/questions/23915524/spring-integration-manually-start-stop-channel-adapter-via-control-bus/23916788#23916788). Вы можете получить ссылку на «MessageSource» внутри адаптера с именем bean name 'id.source'. Я просто заметил, что у вас есть тот же «id» - они должны быть уникальными. –

 Смежные вопросы

  • Нет связанных вопросов^_^