2013-03-19 8 views
1

Я пытаюсь установить свойство invocation в Mule 3.3.1 для использования в управлении потоком «Выбор». Мой поток имеет трансформатор (расширяющий AbstractTransformer), и в нем я хотел бы установить свойство вызова на основе определенной логики. Я могу установить его в .mflow файле:Программно заданное свойство invocation в mule

<message-properties-transformer scope="invocation" doc:name="Set Invocation Variable"> 
    <add-message-property key="someKey" value="someValue"/> 
</message-properties-transformer> 

Однако, я не знаю, как бы я это сделать программно в моем трансформаторе. Моя конечная цель - динамически передавать поле операции в клиенте мыла на основе сообщения мула. Мы ценим любые предложения.

ответ

3

Продлить AbstractMessageTransformer и использовать message.setInvocationProperty:

public class MyTransformer extends AbstractMessageTransformer { 

    @Override 
    public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException { 
     message.setInvocationProperty("someKey", "someValue"); 
     return message; 
    } 

} 
+0

Спасибо Себа, который работал. Прежде, чем я внедрил MessageProcessor, для которого требуется переопределить метод процесса, и это не сработало. – techRunner

Смежные вопросы