0

ich habe sftp: inbound-streaming-channel-adapter mit zoekeeper.aber es gibt mir ausnahme: java.lang.ClassCastException: com .jcraft.jsch.ChannelSftp $ LsEntry kann nicht in java.io.File umgewandelt werden. Ich verwende den folgenden Codesftp: inbound-streaming-channel-adapter mit zoekeeper funktioniert nicht, wenn ich CompositeFileListFilter verwende

<int-sftp:inbound-streaming-channel-adapter 
    id="sftpAdapter" channel="receiveChannel" 
    session-factory="cachingSessionFactory" 
    remote-file-separator="/" remote-directory-expression="'${ftpServerLoc}'" filter="compositeFilter" 
    auto-startup="true"> 
    <int:poller fixed-rate="${pollarInterval}" 
     max-messages-per-poll="1" /> 
</int-sftp:inbound-streaming-channel-adapter> 

    <beans:bean id="compositeFilter" 
    class="org.springframework.integration.file.filters.CompositeFileListFilter"> 
    <beans:constructor-arg> 
     <beans:list> 
      <beans:bean 
       class="org.springframework.integration.file.filters.RegexPatternFileListFilter"> 
       <beans:constructor-arg value="^.*\.(dat|DAT)$" /> 

      </beans:bean> 
      <beans:bean 
       class="org.springframework.integration.sftp.filters.SftpPersistentAcceptOnceFileListFilter"> 
       <beans:constructor-arg name="store" 
        ref="metadataStore" /> 
       <beans:constructor-arg value="" /> 
      </beans:bean> 
     </beans:list> 
    </beans:constructor-arg> 
</beans:bean> 

Antwort

1

Die org.springframework.integration.file.filters.RegexPatternFileListFilter sollte org.springframework.integration.sftp.filters.SftpRegexPatternFileListFilter sein.

Dasjenige, das Sie haben, gilt für java.io.File; Die sftp-Version gilt für LsEntry (Jschs Darstellung der Remote-Datei).

+0

aber jetzt bekomme ich java.lang.IllegalArgumentException: Ungültige Pfadzeichenfolge "/ metaDataStore/.." verursacht durch relative Pfade nicht erlaubt @ 27 Ausnahme. –

+0

ich bekomme org.springframework.integration.zookeeper.metadata.ZookeeperMetadataStoreException: Fehler beim Versuch, '..' sowie –

+0

zu setzen Das ist ein völlig anderes, nicht verwandtes Problem; Ich schlage vor, Sie stellen eine neue Frage und zeigen den kompletten Stack-Trace. –

Verwandte Themen