Пользовательские свойства WSO2 ESB для посредника Smooks

Мне нужно использовать некоторые настройки конфигурации для преобразования сообщения с помощью посредника Smooks. Например, я хочу вставить базовый URL-адрес в значение атрибута исходящего XML во время преобразования.

В Java я бы сделал это, добавив beans в ExecutionContext. Глядя на код SmooksMediator, я этого не вижу. Могу ли я сделать это как-нибудь или мне следует расширить и перекомпилировать SmooksMediator, чтобы предоставить свойства из MessageContext?


person adnecs    schedule 20.03.2013    source источник


Ответы (2)


Для входа в качестве посредника Smooks мы можем передать только один поток из ESB. Поэтому, если вы хотите преобразовать сообщение, внедрив свойство, вы не сможете добиться этого с помощью посредника smooks.

Используйте для этого XSLT-посредник [1]. При настройке посредника XSLT вы можете определить свойства, которые будут передаваться в преобразование.

ex:

 <xslt key="orderTransformer">
   <property expression="get-property('name')" name="name"/>
   <property expression="get-property('email')" name="email"/>
</xslt>

Затем внутри XSLT вы можете определить два свойства, как показано ниже:

<xsl:param name="email"/>
<xsl:param name="name"/>

и используйте их как $ email и $ name в шаблонах.

<ns1:email>
        <xsl:value-of select="$email"/>
    </ns1:email>
    <ns1:name>
        <xsl:value-of select="$name"/>
    </ns1:name>

[1] http://docs.wso2.org/wiki/display/ESB460/XSLT+Mediator

person Lakmali Erandi Baminiwatta    schedule 26.03.2013
comment
В качестве альтернативы мы использовали посредник Enrich, чтобы «склеить» 2 xml-документа и обработать их в Smooks ... - person adnecs; 26.03.2013
comment
Здорово! Это тоже подойдет. - person Lakmali Erandi Baminiwatta; 26.03.2013

Подробную информацию о конфигурации посредника Smooks можно найти в [1].

В противном случае вы можете использовать настраиваемого посредника для выполнения вашей конкретной задачи. Подробную информацию о настраиваемом посреднике можно найти в [2].

[1]. http://wso2.org/library/tutorials/2011/06/perform-data-mapping-smooks-editor-wso2-carbon-studio

[2]. http://maninda.blogspot.com/2012/11/writing-custom-mediator-for-wso2-esb.html

Спасибо, Дхаршана

person Dharshana    schedule 22.03.2013