Spring integration 当我使用file:inbound channel adapter轮询文件时,如何将文件名添加到消息头?

Spring integration 当我使用file:inbound channel adapter轮询文件时,如何将文件名添加到消息头?,spring-integration,Spring Integration,有人能告诉我,当我使用file:inbound channel adapter轮询文件时,如何将文件名添加到消息头 我已经尝试轮询文件并按如下方式插入一个频道 <int-file:inbound-channel-adapter directory="C://inbound" channel="filesChannel" prevent-duplicates="false" filename-pattern="*.*"> <int:poller id="p

有人能告诉我,当我使用file:inbound channel adapter轮询文件时,如何将文件名添加到消息头

我已经尝试轮询文件并按如下方式插入一个频道

<int-file:inbound-channel-adapter
    directory="C://inbound" channel="filesChannel" prevent-duplicates="false"
    filename-pattern="*.*">
    <int:poller id="poll" fixed-delay="30000"
        max-messages-per-poll="100" />
</int-file:inbound-channel-adapter>
protect duplicates=“false”
要求您在轮询器线程完成之前删除或移动文件。如果您愿意,请将其保留为默认值(true),错误。。。防止重复

如果希望在系统重启时防止重复,还需要使用持久文件列表过滤器


但是,一般来说,最好删除或重命名处理过的文件。

谢谢您的回复。我将尝试删除service activator中的文件并更新您。我有一个问题,尽管我设置了30秒的可轮询时间,但为什么我得到相同的文件。嗨,Gary,在我将文件从service activator移动到其他目录后,我没有多次看到相同的文件轮询。如果您的问题得到解决,按照惯例,接受答案是为了帮助他人。单击上面左侧向上投票计数下的复选标记。不幸的是,我不能…我看到类似voteup需要15声誉的消息
<int:service-activator ref="fileService" input-channel="filesChannel" />



@ServiceActivator
    public void service(Message<File> message) throws IOException {

log.info(message.getHeaders());

        log.info(message.getPayload());     
        Path source = Paths.get(message.getPayload().getAbsolutePath());
        Path destination = Paths.get("C:\\inbound\\t\\"+message.getPayload().getName());

    //  Files.move(source, destination, StandardCopyOption.REPLACE_EXISTING);
    }
<int:channel id="filesChannel" />
<int:channel id="filesAddedHeaderChannel" />

<int-file:inbound-channel-adapter
    directory="C://inbound" channel="filesChannel" prevent-duplicates="false"
    filename-pattern="*.*">
    <int:poller id="poll" fixed-delay="30000"
        max-messages-per-poll="10" />
</int-file:inbound-channel-adapter>

<int:header-enricher input-channel="filesChannel" output-channel="filesAddedHeaderChannel">
    <int:header name="file-name"  expression="payload.name"/>
</int:header-enricher>

<int:bridge input-channel="filesChannel" output-channel="filesAddedHeaderChannel"/>

<int:service-activator ref="fileService" input-channel="filesAddedHeaderChannel" />
2015-03-08T19:24:18,663 [task-scheduler-1]    [INFO ] FileService(25) [] - {file-name=tml_internalAps.csv, id=1b9bcd2d-d01c-539b-8eee-c12ba0fcc2b0, timestamp=1425857058650}
2015-03-08T19:24:18,667 [task-scheduler-1]    [INFO ] FileService(27) [] - file name via header:tml_internalAps.csv
2015-03-08T19:24:18,668 [task-scheduler-1]    [INFO ] FileService(29) [] - C:\inbound\tml_internalAps.csv
2015-03-08T19:24:18,671 [task-scheduler-1]    [INFO ] FileService(25) [] - {id=a56980e9-f111-5dbc-6fe8-889c748f04b6, timestamp=1425857058670}
2015-03-08T19:24:18,672 [task-scheduler-1]    [INFO ] FileService(27) [] - file name via header:null
2015-03-08T19:24:18,672 [task-scheduler-1]    [INFO ] FileService(29) [] - C:\inbound\tml_internalAps.csv
2015-03-08T19:24:18,674 [task-scheduler-1]    [INFO ] FileService(25) [] - {file-name=tml_internalAps.csv, id=b53afaa9-9eeb-9795-451e-6898f56a0db7, timestamp=1425857058674}
2015-03-08T19:24:18,675 [task-scheduler-1]    [INFO ] FileService(27) [] - file name via header:tml_internalAps.csv
2015-03-08T19:24:18,675 [task-scheduler-1]    [INFO ] FileService(29) [] - C:\inbound\tml_internalAps.csv
2015-03-08T19:24:18,677 [task-scheduler-1]    [INFO ] FileService(25) [] - {id=7bc88312-2f1b-c4bf-65ed-fe3053b95be7, timestamp=1425857058676}
2015-03-08T19:24:18,677 [task-scheduler-1]    [INFO ] FileService(27) [] - file name via header:null
2015-03-08T19:24:18,678 [task-scheduler-1]    [INFO ] FileService(29) [] - C:\inbound\tml_internalAps.csv
2015-03-08T19:24:18,680 [task-scheduler-1]    [INFO ] FileService(25) [] - {file-name=tml_internalAps.csv, id=c96bc18b-ff52-a96e-7f56-6d72e7e28a4c, timestamp=1425857058679}
2015-03-08T19:24:18,681 [task-scheduler-1]    [INFO ] FileService(27) [] - file name via header:tml_internalAps.csv
2015-03-08T19:24:18,681 [task-scheduler-1]    [INFO ] FileService(29) [] - C:\inbound\tml_internalAps.csv
2015-03-08T19:24:18,683 [task-scheduler-1]    [INFO ] FileService(25) [] - {id=e11e5fe5-f7ab-9721-0f36-11d96f1d4887, timestamp=1425857058683}
2015-03-08T19:24:18,684 [task-scheduler-1]    [INFO ] FileService(27) [] - file name via header:null
2015-03-08T19:24:18,685 [task-scheduler-1]    [INFO ] FileService(29) [] - C:\inbound\tml_internalAps.csv
2015-03-08T19:24:18,686 [task-scheduler-1]    [INFO ] FileService(25) [] - {file-name=tml_internalAps.csv, id=b2a0f757-e4a6-55b8-728a-e8bad8ba25a3, timestamp=1425857058686}
2015-03-08T19:24:18,687 [task-scheduler-1]    [INFO ] FileService(27) [] - file name via header:tml_internalAps.csv
2015-03-08T19:24:18,687 [task-scheduler-1]    [INFO ] FileService(29) [] - C:\inbound\tml_internalAps.csv
2015-03-08T19:24:18,689 [task-scheduler-1]    [INFO ] FileService(25) [] - {id=93c60c2b-ed88-5b79-d163-b4cf923c2e73, timestamp=1425857058688}
2015-03-08T19:24:18,690 [task-scheduler-1]    [INFO ] FileService(27) [] - file name via header:null
2015-03-08T19:24:18,690 [task-scheduler-1]    [INFO ] FileService(29) [] - C:\inbound\tml_internalAps.csv
2015-03-08T19:24:18,692 [task-scheduler-1]    [INFO ] FileService(25) [] - {file-name=tml_internalAps.csv, id=9022ad48-26cb-1e1c-2383-370e556c85a1, timestamp=1425857058691}
2015-03-08T19:24:18,692 [task-scheduler-1]    [INFO ] FileService(27) [] - file name via header:tml_internalAps.csv
2015-03-08T19:24:18,693 [task-scheduler-1]    [INFO ] FileService(29) [] - C:\inbound\tml_internalAps.csv
2015-03-08T19:24:18,694 [task-scheduler-1]    [INFO ] FileService(25) [] - {id=37ee06bc-f093-be7c-a292-743626fa3d9f, timestamp=1425857058694}
2015-03-08T19:24:18,695 [task-scheduler-1]    [INFO ] FileService(27) [] - file name via header:null
2015-03-08T19:24:18,696 [task-scheduler-1]    [INFO ] FileService(29) [] - C:\inbound\tml_internalAps.csv