Java Mule originalFilename为空
我正在使用Mule 3.4.1创建一个进程,在处理一个文件后,它会用一个特定的文件名写出该文件。 输入文件名为:MMDDYYYY\u sys\u newhires.csv 处理后的文件名为:MMDDYYYY\u sys\u newhires\u NNN.csv 我使用的代码如下:Java Mule originalFilename为空,java,mule,mule-el,Java,Mule,Mule El,我正在使用Mule 3.4.1创建一个进程,在处理一个文件后,它会用一个特定的文件名写出该文件。 输入文件名为:MMDDYYYY\u sys\u newhires.csv 处理后的文件名为:MMDDYYYY\u sys\u newhires\u NNN.csv 我使用的代码如下: #[filename = message.inboundProperties.originalFilename; filename= com.cfa.apps.icims.mule.CounterSingleton
#[filename = message.inboundProperties.originalFilename;
filename= com.cfa.apps.icims.mule.CounterSingleton.getInstance().getCount()
+ filename.substring(0,filename.length() -1 -4) + ".csv";
filename]
问题存在于第一行。message.inboundProperties.originalFilename
我尝试了许多不同的组合
message.inboundProperties.originalFilename
message.inboundProperties['originalFilename']
message.inboundProperties.originalFileName
message.inboundProperties['originalFileName']
message.inboundProperties.sourceFilename
message.inboundProperties['sourceFilename']
message.inboundProperties.sourceFileName
message.inboundProperties['sourceFileName']
现在,我还尝试嵌套#[header:originalFilename],它本身就可以工作,但至少据我所知,您无法在代码中嵌套表达式
有什么帮助吗
更新:我正在使用入站文件传输因为您没有显示端点配置,所以我假设这是在文件入站端点上发生的 出于超乎想象的原因,当计算表达式以生成存档文件名时,入站端点后面的文件消息接收器将
originalFilename
属性置于出站范围内
所以使用:
message.outboundProperties.originalFilename
我已经在esb3.7.1
中测试了这个mel
表达式,它工作正常
message.inboundProperties.originalFilename=='firstfile.txt'
我想我明白这是为什么。从技术上讲,入站属性是影响适配器工作方式的内容,例如输入目录。但是,这是一个出站属性,因为它是适配器操作的结果。这不是am amswer。这可能是一个评论