File 获取不带扩展名的文件名:camel

File 获取不带扩展名的文件名:camel,file,apache-camel,File,Apache Camel,我有像这样的扩展名为filename的头文件 Test.txt 我只需要在另一个头中获取文件名即单独测试。谁能帮我做到这一点 谢谢。您有多种选择。这些示例从一个头中获取完整的文件名,并将不带扩展名的文件名写入另一个头中 您可以编写一个Javabean来使用完整的Java功能(例如ApacheCommonsFileNameUtils.getBaseName),并从路由中调用它。查看如何将头值注入bean方法。在路径中,您可以这样调用bean .setHeader("filename", met

我有像这样的扩展名为filename的头文件


Test.txt

我只需要在另一个头中获取文件名即单独测试。谁能帮我做到这一点


谢谢。

您有多种选择。这些示例从一个头中获取完整的文件名,并将不带扩展名的文件名写入另一个头中

您可以编写一个Javabean来使用完整的Java功能(例如ApacheCommonsFileNameUtils.getBaseName),并从路由中调用它。查看如何将头值注入bean方法。在路径中,您可以这样调用bean

.setHeader("filename", method(beanReference, "methodName"))
或者将camel-groovy添加到依赖项中,以获得比camel-Simple更强大的脚本编写能力。然后你可以直接在骆驼路线上完成

setHeader("filename").groovy("request.headers.get('fullFilename')
    .take(request.headers.get('fullFilename').lastIndexOf('.'))")

Burki,你能解释一下如何在SpringDSL中使用groovy“你的groovy表达式”吗?嘿,Burki,我试了你刚才提到的方法,但我发现了错误。尽管我的工作区中有camel脚本jar,但找不到groovy的语言。我还尝试用filter代替setHeader,在出现filter错误后没有得到子节点。您是否已将
camel groovy
添加到依赖项中?还可以看到如何在CamelTHank you Burki中使用Groovy,Test.txt request.headers.get('fullFilename')。take(request.headers.get('fullFilename')。lastIndexOf('.'))我使用上述代码段实现并添加了CamelGroovy jar,这很有效。谢谢。