2015-09-25 121 views
2

彈簧入站通道適配器出現問題。導入新文件的效果非常好。 但是選項prevent-duplicates="false"似乎無法正常工作 - 當具有相同名稱的文件保存到指定的目錄時,它不會被導入。彈簧入站通道適配器prevent-duplicates = false不起作用

入站通道適配器的定義:

<file:inbound-channel-adapter id="batchFilesDemo" directory="#{baseDirectoryDemo}" prevent-duplicates="false" 
     filename-regex="^(.*)-(\d+)\.csv" comparator="fileOrderComparator"> 
     <int:poller fixed-rate="1000" /> 
    </file:inbound-channel-adapter> 

提前任何建議謝謝!

+0

請與我們分享您使用的Spring集成版本 –

回答

0

剛剛與Spring集成測試4.2是:

<inbound-channel-adapter id="adapterWithRegexPattern" 
     directory="d:\tmp\" 
     prevent-duplicates="false" 
     filename-regex="^.*\.txt"> 
    <integration:poller fixed-rate="1000"/> 
</inbound-channel-adapter> 

<integration:chain input-channel="adapterWithRegexPattern"> 
    <file-to-string-transformer/> 
    <integration:logging-channel-adapter level="FATAL" log-full-message="true"/> 
</integration:chain> 

而且我的日誌是這樣的:

[task-scheduler-1] ERROR: org.springframework.integration.handler.LoggingHandler - GenericMessage [payload=1, headers={file_originalFile=d:\tmp\1.txt, id=0dc6932a-3007-28bf-41e6-c1d8e3fcc91f, file_name=1.txt, timestamp=1443197583589}] 
[task-scheduler-1] ERROR: org.springframework.integration.handler.LoggingHandler - GenericMessage [payload=2, headers={file_originalFile=d:\tmp\2.txt, id=e0f624eb-33b5-297d-7fb9-89904fc01a7a, file_name=2.txt, timestamp=1443197584560}] 
[task-scheduler-2] ERROR: org.springframework.integration.handler.LoggingHandler - GenericMessage [payload=1, headers={file_originalFile=d:\tmp\1.txt, id=bd680d29-02d9-a5e8-4f8e-c14200315ed0, file_name=1.txt, timestamp=1443197585559}] 
[task-scheduler-1] ERROR: org.springframework.integration.handler.LoggingHandler - GenericMessage [payload=2, headers={file_originalFile=d:\tmp\2.txt, id=a4f7d240-5a7b-d088-f987-84f0c747afe0, file_name=2.txt, timestamp=1443197586559}] 
[task-scheduler-3] ERROR: org.springframework.integration.handler.LoggingHandler - GenericMessage [payload=1, headers={file_originalFile=d:\tmp\1.txt, id=a6a56195-7ed3-01d7-f52f-d08f9b395165, file_name=1.txt, timestamp=1443197587559}] 
[task-scheduler-2] ERROR: org.springframework.integration.handler.LoggingHandler - GenericMessage [payload=2, headers={file_originalFile=d:\tmp\2.txt, id=68c95abb-b113-34b1-7488-cf56155845a4, file_name=2.txt, timestamp=1443197588559}] 
[task-scheduler-4] ERROR: org.springframework.integration.handler.LoggingHandler - GenericMessage [payload=1, headers={file_originalFile=d:\tmp\1.txt, id=a58cab74-bd45-be4c-d7ee-853df5818cfa, file_name=1.txt, timestamp=1443197589560}] 
[task-scheduler-1] ERROR: org.springframework.integration.handler.LoggingHandler - GenericMessage [payload=2, headers={file_originalFile=d:\tmp\2.txt, id=a9ba0460-6f37-deed-35ce-03149b23f636, file_name=2.txt, timestamp=1443197590559}] 
[task-scheduler-5] ERROR: org.springframework.integration.handler.LoggingHandler - GenericMessage [payload=111111, headers={file_originalFile=d:\tmp\1.txt, id=d6de0d59-1877-e3e8-da21-8f668ec79e72, file_name=1.txt, timestamp=1443197591560}] 
[task-scheduler-3] ERROR: org.springframework.integration.handler.LoggingHandler - GenericMessage [payload=2, headers={file_originalFile=d:\tmp\2.txt, id=23b36d87-0d60-0d7a-c2c7-696cf93680f7, file_name=2.txt, timestamp=1443197592559}] 
[task-scheduler-6] ERROR: org.springframework.integration.handler.LoggingHandler - GenericMessage [payload=111111, headers={file_originalFile=d:\tmp\1.txt, id=98de0104-2837-6ed1-22a3-1f69292ab5af, file_name=1.txt, timestamp=1443197593559}] 
[task-scheduler-2] ERROR: org.springframework.integration.handler.LoggingHandler - GenericMessage [payload=2, headers={file_originalFile=d:\tmp\2.txt, id=d303e0cc-4657-6548-e08e-863b1089528a, file_name=2.txt, timestamp=1443197594559}] 
[task-scheduler-7] ERROR: org.springframework.integration.handler.LoggingHandler - GenericMessage [payload=111111, headers={file_originalFile=d:\tmp\1.txt, id=861ffa79-c76d-8216-1620-da50c53bf83c, file_name=1.txt, timestamp=1443197595560}] 
[task-scheduler-4] ERROR: org.springframework.integration.handler.LoggingHandler - GenericMessage [payload=2, headers={file_originalFile=d:\tmp\2.txt, id=f63680c5-11c7-e303-9338-9dd5028b7bcb, file_name=2.txt, timestamp=1443197596559}] 
[task-scheduler-8] ERROR: org.springframework.integration.handler.LoggingHandler - GenericMessage [payload=111111, headers={file_originalFile=d:\tmp\1.txt, id=7e565984-0dab-6187-5969-2bc9a5104d49, file_name=1.txt, timestamp=1443197597559}] 
[task-scheduler-1] ERROR: org.springframework.integration.handler.LoggingHandler - GenericMessage [payload=2, headers={file_originalFile=d:\tmp\2.txt, id=0ae04d1c-a9c9-1877-2025-248c2f387c5a, file_name=2.txt, timestamp=1443197598559}] 

等。

請注意,我在那裏有永久從目錄中提取的兩個相同的文件,請查找文件1.txt的內容如何更改,並且它也反映在我的應用程序中。

因此,或者你的fileOrderComparator爲我們做了一些意想不到的事情。或者你的文件不適合這種模式。

0

謝謝Artem!

這確實是我的 FileOrderComparator使用Map來確定文件的文件名的優先級,所以類似的文件名總是阻止導入。

我正在使用Spring集成版本4.1.2。

相關問題