使用WatchServiceDirectoryScanner作为int-file时的Spring集成冻结:inbound-channel-adapter scanner

时间:2016-05-18 09:03:05

标签: spring-integration

我尝试将WatchServiceDirectoryScanner用作int-file:inbound-channel-adapter扫描程序,如下所示:

<int:poller id="globalPoller" default="true" fixed-delay="1000" max-messages-per-poll="10" task-executor="executor"
            error-channel="errorChannel">

</int:poller>
<task:executor id="executor" pool-size="100"/>
<int:channel id="filesInChannel">
    <int:queue/>
</int:channel>
<int-file:inbound-channel-adapter id="filesInAdapter" directory="file:${sas.dir}"
                                   channel="filesInChannel"  auto-startup="true" scanner="watchDirectoryScanner"  >
    <int:poller ref="globalPoller"/>

</int-file:inbound-channel-adapter>


<bean id="nioLocker" class="org.springframework.integration.file.locking.NioFileLocker" />

<bean id="watchDirectoryScanner" class="org.springframework.integration.file.WatchServiceDirectoryScanner" >
    <constructor-arg value="file:${sas.dir}"/>
    <property name="autoStartup" value="true"/>
    <property name="filter" ref="compositeFilter" />
    <property name="locker" ref="nioLocker"/>
</bean>

但是应用程序没有运行,并且没有出现错误日志。有人有经验吗?我应该把调试点放在哪里? .Thanks。

1 个答案:

答案 0 :(得分:0)

使用DEBUG日志记录运行 - 如果在日志中看不到任何活动,则轮询器线程卡在某处 - 使用jstack进行线程转储以找出原因。