我需要使用一些配置设置来使用Smooks中介转换消息。例如,我想在转换期间将基本URL注入传出xml的属性值。
在Java中,我通过向ExecutionContext添加bean来实现。看看SmooksMediator代码我没看到这个。我可以以某种方式做到这一点,或者我应该扩展并重新编译SmooksMediator以提供MessageContext的属性?
答案 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 :(得分: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