Доступ к свойствам, установленным во время выполнения, с использованием нотации свойства ${} в потоке Mule

В потоке Mule у меня есть свойство, установленное в моем потоке следующим образом:

    <set-property propertyName="certPath" value="/tmp/#[aVariable]/certificate.pem" doc:name="Property"/>

Теперь я пытаюсь использовать его в атрибуте identityFile исходящей конечной точки sftp следующим образом: identityFile="${certPath}"

Это не работает и принимает заполнитель в виде строки (как есть).

Я что-то упустил в том, как свойства должны быть установлены, а затем доступны?

Я также пытался добавить свойство сообщения в область сеанса, но затем при попытке ${session.certPath} ничего не просматривается.


person Loic Duros    schedule 17.04.2014    source источник
comment
Что такое <set-property>? это не муравей. Является ли это частью файла сборки, который выполняет Ant?   -  person David W.    schedule 17.04.2014
comment
Это в Mule, вы можете установить свойство в потоке XML, используя эту конструкцию. Затем вы должны получить к нему доступ, используя нотацию в стиле муравья, но до сих пор мне не удавалось выяснить, как это сделать на самом деле.   -  person Loic Duros    schedule 17.04.2014


Ответы (1)


Чтобы получить доступ к набору свойств во время потока, вам необходимо использовать язык Mule Expression.

Попробуйте использовать следующее для доступа к вашей собственности.

#[message.outboundProperties['certPath']]

Примечание. Это работает, только если доступ к свойству осуществляется в том же потоке.

Доступ в стиле муравья ${session.certPath} предназначен для загрузки свойств из файла свойств.

Перейдите по следующей ссылке для получения более подробной информации о MEL.

http://www.mulesoft.org/documentation/display/current/Property+Transformer+Reference

Надеюсь это поможет.

person user1760178    schedule 17.04.2014
comment
Знаете ли вы, работает ли он внутри атрибута identityFile конечной точки sftp? По опыту ни одно из выражений мулов, которые я там разместил, вообще не оценивалось, а вместо этого воспринималось как строки. - person Loic Duros; 17.04.2014
comment
Нет, это не сработает. Вот что я получаю: Сообщение от Processing Engine: Неожиданное исключение при попытке записи файла, сообщение: IdentityFile '# [message.outboundProperties ['certPath']]' не найден - person Loic Duros; 17.04.2014
comment
Выражение принимается как есть, как строка, вместо того, чтобы разрешаться в значение этого свойства или другой переменной, если на то пошло. - person Loic Duros; 18.04.2014
comment
Единственным решением может быть создание компонента, который вызывает сам класс SftpClient с правильным путем к файлу. - person Loic Duros; 18.04.2014