【问题标题】:Mule originalFilename is nullMule originalFilename 为空
【发布时间】:2013-09-23 18:16:51
【问题描述】:

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

有什么帮助吗?

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

【问题讨论】:

    标签: java mule mule-el


    【解决方案1】:

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

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

    所以使用:message.outboundProperties.originalFilename

    【讨论】:

    • 我想我明白为什么会这样。入站属性在技术上是影响适配器工作方式的事物,例如输入目录。然而,这是一个出站属性,因为它是适配器操作的结果。
    【解决方案2】:

    我已经在ESB 3.7.1 中测试了这个mel EXPRESSION,它工作正常!!

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

    【讨论】:

    • 这不是 amswer。这可能是一条评论
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 2015-08-25
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多