Mule originalFilename为null

时间:2013-09-18 20:15:02

标签: java mule mule-el

我正在使用Mule 3.4.1创建一个进程,在处理文件后,它会写出具有特定文件名的文件。 输入文件名为:MMDDYYYY_sys_newhires.csv 处理过的文件名为:MMDDYYYY_sys_newhires_NNN.csv

我正在使用的代码如下:

#[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],这本身就可以工作,但是至少就我所知,你不能在代码中嵌套表达式。

任何帮助?

更新:我正在使用入站文件传输

2 个答案:

答案 0 :(得分:7)

由于您没有显示端点配置,我将假设这是在文件入站端点发生的。

出于超乎想象的原因,入站端点后面的文件消息接收器在评估表达式时将originalFilename属性放在出站作用域中以生成归档文件名。 / p>

所以请使用:message.outboundProperties.originalFilename

答案 1 :(得分:-1)

我已经在mel中对此EXPRESSION ESB 3.7.1进行了测试,并且工作正常!!

message.inboundProperties.originalFilename=='firstfile.txt'