12

拡張子で最も単純なフィルターが必要です:feファイル20120523.173227.CustomerMaster05092012.QWERTY.xmlルート:

<from uri="file://{{fdr.folder.working.url}}&amp;include=*.xml"/>

動作しません:

インデックス0の近くのぶら下がっているメタ文字'*'

WARN - file://root_folder/working/) [FileConsumer] Consumer Consumer[file://root_folder/working/?delay=1000&delete=true&idempotent=false&include=*.xml&initialDelay=1000&readLock=changed] failed polling endpoint: Endpoint[file://root_folder/working/?delay=1000&delete=true&idempotent=false&include=*.xml&initialDelay=1000&readLock=changed]. Will try again at next poll. Caused by: [java.util.regex.PatternSyntaxException - Dangling meta character '*' near index 0
*.xml
^]
java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0
*.xml
^
    at java.util.regex.Pattern.error(Pattern.java:1713)
    at java.util.regex.Pattern.sequence(Pattern.java:1878)
    at java.util.regex.Pattern.expr(Pattern.java:1752)
    at java.util.regex.Pattern.compile(Pattern.java:1460)
    at java.util.regex.Pattern.<init>(Pattern.java:1133)
    at java.util.regex.Pattern.compile(Pattern.java:823)
    at java.util.regex.Pattern.matches(Pattern.java:928)
    at java.lang.String.matches(String.java:2090)
    at org.apache.camel.component.file.GenericFileConsumer.isMatched(GenericFileConsumer.java:458)
    at org.apache.camel.component.file.GenericFileConsumer.isValidFile(GenericFileConsumer.java:395)
    at org.apache.camel.component.file.FileConsumer.pollDirectory(FileConsumer.java:94)
    at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:107)
    at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:142)
    at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:92)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

たぶん私の悪い。私はファイル全体を含めて入れました:

<from uri="file://{{fdr.folder.working.url}}&amp;include=20120523.173227.CustomerMaster05092012.QWERTY.xml"/>

ファイル全体でOKです。ファイル名の途中に*を入れてみましょう

<from uri="file://{{fdr.folder.working.url}}&amp;include=20120523.*.xml"/>

そして再びそれは大丈夫です。ファイル名に1桁だけ入れましょう

<from uri="file://{{fdr.folder.working.url}}&amp;include=2*.xml"/>

いいえ、ラクダはそのようなファイルを見つけられませんでした。エスケープしたアスタリスクを試しましたが、役に立ちませんでした。

<from uri="file://{{fdr.folder.working.url}}&amp;include=\*.xml"/>
and
<from uri="file://{{fdr.folder.working.url}}&amp;include=\\*.xml"/>

ファイルは無視されました。質問1:アスタリスクの使い方は?

質問2:include= .xmlなどの複数のファイル拡張子を使用する方法。。ジップ

thks

4

3 に答える 3

17

くそー、良い考えが後に来る、力ずくの使用を使用して、私は含めるための正しい値を見つけました:

.*.xml|.*.zip
于 2013-02-25T04:26:49.523 に答える
5
(?i).*.xml|.*.zip

大文字と小文字を区別しないファイル拡張子の一致が必要な場合。

于 2015-01-20T02:49:19.560 に答える
4

文字列の円記号を適切にエスケープし、文字列の終わり記号'$'を使用する必要があります。include=.*\\.xml$

于 2018-01-25T12:28:32.053 に答える