2016-10-06 1 views
0

タイトルには、Camelのファイル言語を使用して正しいルートを指定するファイル拡張子を取得しようとしています。

choice(). 
    when().simple("${file:ext} in 'xml'"). 
     unmarshal(coreIt("jaxb[Core]")). 
     beanRef(connectorName()+coreIt("[Core]ImportConnector"), "processXml"). 
    when().simple("${file:ext} in 'zip,7z'"). 
     beanRef(connectorName()+coreIt("[Core]ImportConnector"), "extractZip"). 
endChoice(); 

問題は、クライアントはファイル名に日付を持ち、ドットで区切られたxmlファイルを提供しています。何らかの理由で、ラクダは最初のドットの後のすべてを拡張として扱います。私が行う場合:

when().simple("${file:ext} in '09.16.xml'"). 

それが動作する...

は、任意の解決策や回避策は、XMLファイルをインポートする別のフォルダを作成するとは別にありますか?御時間ありがとうございます。

+0

あなたはキャメルのどのバージョンを使用してください:

${file:name} ends with 'zip' || ${file:name} ends with '7z' 

がで詳細を参照してください? –

+0

@ClausIbsen 2.15.2 – Sikor

+0

新しいCamelバージョンで試しましたか?そして、WindowsやLinuxを使っていますか? –

答えて

1

ファイルの中には、 '.tar.gz'などの拡張子のドットがあるものもあります。だから彼らは理想的にファイル名にドットを使用しないでください。この問題を回避するには、これを確認するために他の簡単な式を使用する必要があります。あなたは

${file:name} ends with 'xml' 

に端を使用することができます。そして、あなたは使用することができますか:http://camel.apache.org/simple

+0

新しいバージョンにアップグレードする必要がありましたが動作します。ありがとうございました。 – Sikor

関連する問題