2

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

在 Java 中,我会通过将 bean 添加到 ExecutionContext 来做到这一点。查看 SmooksMediator 代码,我没有看到这一点。我可以以某种方式做到这一点,还是应该扩展和重新编译 SmooksMediator 以提供 MessageContext 的属性?

4

2 回答 2

3

对于作为 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>

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

于 2013-03-26T03:55:36.260 回答
0

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

谢谢你,达沙那

于 2013-03-22T18:06:57.817 回答