cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How can I inject a custom correlation header for WSO2 ESB?

rajkumarr
Adventurer

I'm trying to do custom transaction correlation for WSO2 ESB. The exit point (producer) of WSO2 ESB is the send() method of Axis2FlexibleMEPClient class [1].

 

send() method is as below.

 

 

public static void send(

         EndpointDefinition endpoint,
         org.apache.synapse.MessageContext synapseOutMessageContext) throws AxisFault {

     boolean separateListener = false;
     boolean wsSecurityEnabled = false;
     String wsSecPolicyKey = null;
     String inboundWsSecPolicyKey = null;
     String outboundWsSecPolicyKey = null;
     boolean wsRMEnabled = false;
     boolean wsAddressingEnabled = false;
     String wsAddressingVersion = null;

 

Can someone please help me how can inject correlation data in this case? org.apache.synapse.MessageContext doesn't have a class field to hold the correlation key.

 

If I want to add a custom HTTP header to the outgoing call in WSO2 ESB (using org.apache.synapse.MessageContext object in the send() method), I would do like below.

 

 

org.apache.axis2.context.MessageContext axisMC = ((org.apache.synapse.core.axis2.Axis2MessageContext) synapseOutMessageContext).getAxis2MessageContext();
        
Map headers = (Map) axisMC.getProperty(org.apache.axis2.context.MessageContext.TRANSPORT_HEADERS); headers.put("correlationKey", value"); axisMC.setProperty(org.apache.axis2.context.MessageContext.TRANSPORT_HEADERS, headers);

 

 

How do I the same thing in appd to inject a custom HTTP header?

 

[1] https://github.com/wso2/wso2-synapse/blob/master/modules/core/src/main/java/org/apache/synapse/core/...

1 REPLY 1

rajkumarr
Adventurer

Can someone please help me on how we can cast objects in custom-activity-correlation.xml when configuring <payload-pointer/> section?