sftp:inbound-当我使用 CompositeFileListFilter 时,带有 zookeeper 的流式通道适配器不工作
sftp:inbound-streaming-channel-adapter with zookeeper is not working when i use CompositeFileListFilter
我已经将 sftp:inbound-streaming-channel-adapter 与 zookeeper.but 一起使用,它给了我异常:java.lang.ClassCastException:com.jcraft.jsch.ChannelSftp$LsEntry 无法转换为 java.io.File。我正在使用以下代码
<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>
org.springframework.integration.file.filters.RegexPatternFileListFilter
应该是org.springframework.integration.sftp.filters.SftpRegexPatternFileListFilter
。
你的那个适用于java.io.File
; sftp 版本适用于 LsEntry
(Jsch 对远程文件的表示)。
我已经将 sftp:inbound-streaming-channel-adapter 与 zookeeper.but 一起使用,它给了我异常:java.lang.ClassCastException:com.jcraft.jsch.ChannelSftp$LsEntry 无法转换为 java.io.File。我正在使用以下代码
<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>
org.springframework.integration.file.filters.RegexPatternFileListFilter
应该是org.springframework.integration.sftp.filters.SftpRegexPatternFileListFilter
。
你的那个适用于java.io.File
; sftp 版本适用于 LsEntry
(Jsch 对远程文件的表示)。