我正在使用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],它可以单独工作,但是至少就我所知,您不能将表达式嵌套在代码中。

有什么帮助吗?

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

最佳答案

由于您没有显示端点配置,因此我将假定这种情况发生在文件入站端点上。

由于超出了想象的原因,入站端点后面的文件消息接收器在评估表达式以生成存档文件名时会将originalFilename属性置于出站范围内。

因此使用:message.outboundProperties.originalFilename

关于java - ule子originalFilename为null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18881530/

10-12 05:25