2015-05-29 2 views
1

Я хочу создать поток с использованием DSL. Поток от адаптера, сообщение будет поступать на канал.Весенняя интеграция Java DSL: создание входящего адаптера sftp

@Bean 
    public IntegrationFlow sftpInboundFlow() { 
     prepareSftpServer(); 

     return IntegrationFlows 
       .from(Sftp.inboundAdapter(this.sftpSessionFactory).getId("SftpInboundAdapter") 
           .preserveTimestamp(true) 
           .remoteDirectory("sftpSource") 
           .regexFilter(".*\\.txt$") 
           .localFilenameExpression("#this.toUpperCase() + '.a'").localDirectory(file).channel(MessageChannels.queue("sftpInboundResultChannel")) 
           .get()); 

    } 

Не уверен в ошибке компиляции при методе getId(). пытался конвертировать из Java 8 лямбда в Java 7

ответ

0

Я думаю, вы хотите добавить атрибут id для вашего компонента, чтобы зарегистрировать его с этим именем компонента в контексте приложения. Вы конфиг должны выглядеть следующим образом:

return IntegrationFlows 
       .from(Sftp.inboundAdapter(this.sftpSessionFactory) 
           .preserveTimestamp(true) 
           .remoteDirectory("sftpSource") 
           .regexFilter(".*\\.txt$") 
           .localFilenameExpression("#this.toUpperCase() + '.a'") 
           .localDirectory(file), 
         new Consumer<SourcePollingChannelAdapterSpec>() { 

          @Override 
          public void accept(SourcePollingChannelAdapterSpec e) { 
           e.id("SftpInboundAdapter"); 
          } 
         }) 
       .channel(MessageChannels.queue("sftpInboundResultChannel")) 
       .get(); 

Там нет такого getId(String) метода.

Да, я исправлю его JavaDocs eventuelly, но вы столкнулись с действительно компиляцией ошибкой, следовательно, неправильным использованием языка.

+0

Привет, Артем, я могу избавиться от ошибки компиляции и написать адаптер, но не смог запустить адаптер, используя тестовый пример для S FTP в весеннем интегрировании DSL. Не могли бы вы указать любой указатель на него. –

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