正如标题所说,我正在尝试使用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 文件之外,还有其他解决方案或解决方法吗?感谢您的宝贵时间。
这很困难,因为某些文件的扩展名可能有点,例如“.tar.gz”等。因此,理想情况下,他们不应在文件名中使用点。要解决此问题,您需要使用其他一些简单的表达式来检查此问题。您可以使用结尾
${file:name} ends with 'xml'
然后你可以使用or:
${file:name} ends with 'zip' || ${file:name} ends with '7z'
查看更多详细信息:http://camel.apache.org/simple