我需要使用一些配置设置来使用 Smooks 中介转换消息。例如,我想在转换期间将基本 URL 注入传出 xml 的属性值中。
在 Java 中,我会通过将 bean 添加到 ExecutionContext 来做到这一点。查看 SmooksMediator 代码,我没有看到这一点。我可以以某种方式做到这一点,还是应该扩展和重新编译 SmooksMediator 以提供 MessageContext 的属性?
对于作为 Smooks 中介的输入,我们只能从 ESB 提供一个流。因此,如果您想通过注入属性来转换消息,则无法使用 smooks 中介来实现。
为此 [1] 使用 XSLT 中介。配置 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>
Smooks mediator 的整个配置细节可以从 [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
谢谢你,达沙那