Smooksメディエーターでメッセージを変換するには、いくつかの構成設定を使用する必要があります。たとえば、変換中に送信xmlの属性値にベースURLを挿入したいとします。
Javaでは、ExecutionContextにBeanを追加することでそれを行います。SmooksMediatorコードを見ると、これはわかりません。どういうわけかそれを行うことができますか、それともSmooksMediatorを拡張して再コンパイルし、MessageContextからプロパティを提供する必要がありますか?
Smooksメディエーターとしての入力の場合、ESBから1つのストリームのみをフィードできます。したがって、プロパティを挿入してメッセージを変換したい場合、smooksメディエーターではそれを実現できません。
これにはXSLTメディエーターを使用します[1]。XSLTメディエーターを構成するときに、変換に渡されるプロパティを定義できます。
元:
<xslt key="orderTransformer">
<property expression="get-property('name')" name="name"/>
<property expression="get-property('email')" name="email"/>
</xslt>
次に、XSLT内で、次のように2つのプロパティを定義できます。
<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メディエーターの全体的な構成の詳細は、[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
ありがとう、ダーシャナ