Parámetros del mediador personalizado dinámico en wso2 ESB
mediator (3)
Creé un mediador personalizado usando los artículos http://wso2.com/library/2898/ y http://wso2.com/library/2936/ .
Se parece a esto:
<inSequence>
<property expression="local-name($body/*[1])" name="method" scope="default" type="STRING"/>
<MyMediator>
<header>SomeHeader<header/>
<topic>SomeTopic</topic>
</MyMediator>
</inSequence>
Funciona bien, pero un problema que no resolví, ¿cómo puedo cambiar dinámicamente el valor del parámetro de mediadores de temas y / o encabezados?
Cuando traté de poner algo como get-property(''method'')
lugar de SomeHeader
. Fue entregado en el código del mediador como una cadena, ebs no lo calculó.
Mi pregunta es cómo cambiar el valor de mi parámetro de mediadores personalizado al valor de propiedad?
La implementación actual no admite expresiones como propiedades de mediador de clase. Por favor, diríjase a Jira para más detalles.
No puede pasar ningún valor dinámico a un mediador personalizado, pero puede leer cualquier propiedad dentro de mediadores personalizados.
public boolean mediate(MessageContext mc) {
String value = (String) mc.getProperty("SomeHeader");
}
Puede elegir, por ejemplo, usar {} llaves para decir que su cadena es una solicitud XPath. En su mediador, si encuentra {} en la primera y última posición, use org.apache.synapse.util.xpath.SynapseXPath: cree una nueva SynapseXPath con su xpath (la cadena entre {}) y use stringValueOf (theMessageContext)