Smooks中介的WSO2 ESB自定义属性

时间:2013-03-20 02:44:23

标签: wso2 wso2esb smooks

我需要使用一些配置设置来使用Smooks中介转换消息。例如,我想在转换期间将基本URL注入传出xml的属性值。

在Java中,我通过向ExecutionContext添加bean来实现。看看SmooksMediator代码我没看到这个。我可以以某种方式做到这一点,或者我应该扩展并重新编译SmooksMediator以提供MessageContext的属性?

2 个答案:

答案 0 :(得分:3)

对于作为Smooks中介的输入,我们只能从ESB中提供一个流。因此,如果要通过注入属性来转换消息,则无法使用smooks中介实现它。

为此使用XSLT介体[1]。配置XSLT介体时,您可以定义要传递到转换的属性。

例如:

 <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

答案 1 :(得分:0)

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

谢谢你, Dharshana